zoukankan
html css js c++ java
上传并生成小图
string
simgUrl,bimgUrl;
try
{
string
strGuid
=
DateTime.Now.ToShortDateString()
+
System.Guid.NewGuid().ToString().ToLower();
string
strFileExt
=
GiftImgSrc.PostedFile.FileName.Substring(GiftImgSrc.PostedFile.FileName.LastIndexOf(
"
.
"
));
string
savebimgUrl
=
Server.MapPath(
@"
../GiftsImg
"
)
+
@"
\bimg\
"
+
strGuid
+
strFileExt.ToLower();
GiftImgSrc.PostedFile.SaveAs(savebimgUrl);
bimgUrl
=
strGuid
+
strFileExt ;
//
注意这里要用: savebimgUrl
simgUrl
=
GetThumbNail(savebimgUrl,
150
,
170
,
"
white
"
, GiftImgSrc.PostedFile.ContentType.ToString(), GiftImgSrc.PostedFile.InputStream);
}
catch
(Exception)
{
Page.RegisterStartupScript(
""
,
@"
<script>alert('上传图片与生成图形的过程出错!!\n请重试或查看是否有读写权限!!');</script>
"
);
return
;
}
private
System.Drawing.Imaging.ImageFormat GetImageType(
object
strContentType)
{
switch
(strContentType.ToString().ToLower())
{
case
"
image/pjpeg
"
:
return
System.Drawing.Imaging.ImageFormat.Jpeg;
case
"
image/gif
"
:
return
System.Drawing.Imaging.ImageFormat.Gif;
case
"
image/bmp
"
:
return
System.Drawing.Imaging.ImageFormat.Bmp;
case
"
image/tiff
"
:
return
System.Drawing.Imaging.ImageFormat.Tiff;
case
"
image/x-icon
"
:
return
System.Drawing.Imaging.ImageFormat.Icon;
case
"
image/x-png
"
:
return
System.Drawing.Imaging.ImageFormat.Png;
case
"
image/x-emf
"
:
return
System.Drawing.Imaging.ImageFormat.Emf;
case
"
image/x-exif
"
:
return
System.Drawing.Imaging.ImageFormat.Exif;
case
"
image/x-wmf
"
:
return
System.Drawing.Imaging.ImageFormat.Wmf;
default
:
return
System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}
private
string
GetThumbNail(
string
strFileName,
int
iWidth,
int
iHeight,
string
BgColor,
string
strContentType,System.IO.Stream ImgStream)
{
System.Drawing.Image oImg
=
System.Drawing.Image.FromFile(strFileName);
//
如果图直接小于生成的上图就直接上传不重生成
if
(oImg.Width
<
iWidth
&&
oImg.Height
<
iHeight)
{
string
strGuid
=
DateTime.Now.ToShortDateString()
+
System.Guid.NewGuid().ToString().ToLower();
string
strFileExt
=
strFileName.Substring(strFileName.LastIndexOf(
"
.
"
));
//
保存图片
string
strSaveUrl
=
Server.MapPath(
@"
../GiftsImg
"
)
+
@"
\simg\
"
+
strGuid
+
strFileExt.ToLower();
GiftImgSrc.PostedFile.SaveAs(strSaveUrl);
return
strGuid
+
strFileExt;
}
else
{
//
小图
int
intwidth, intheight;
if
(oImg.Width
>
oImg.Height)
{
if
(oImg.Width
>
iWidth)
{
intwidth
=
iWidth;
intheight
=
(oImg.Height
*
iWidth)
/
oImg.Width;
}
else
{
intwidth
=
oImg.Width;
intheight
=
oImg.Height;
}
}
else
{
if
(oImg.Height
>
iHeight)
{
intwidth
=
(oImg.Width
*
iHeight)
/
oImg.Height;
intheight
=
iHeight;
}
else
{
intwidth
=
oImg.Width;
intheight
=
oImg.Height;
}
}
//
oImg = oImg.GetThumbnailImage(iWidth, iheight, Nothing, (New IntPtr).Zero);
Bitmap b
=
new
Bitmap(intwidth, intheight, PixelFormat.Format24bppRgb);
Graphics g
=
Graphics.FromImage(b);
Color myColor;
if
(BgColor
==
null
)
myColor
=
Color.FromName(
"
white
"
);
else
myColor
=
Color.FromName(BgColor);
g.Clear(myColor);
//
g.DrawImage(oImg, new Rectangle((iWidth - intwidth) / 2, (iHeight - intheight) / 2, intwidth, intheight), new Rectangle(0, 0, oImg.Width, oImg.Height), GraphicsUnit.Pixel);
g.DrawImage(oImg,
new
Rectangle(
0
,
0
, intwidth, intheight),
new
Rectangle(
0
,
0
, oImg.Width, oImg.Height), GraphicsUnit.Pixel);
string
strGuid
=
DateTime.Now.ToShortDateString()
+
System.Guid.NewGuid().ToString().ToLower();
string
strFileExt
=
strFileName.Substring(strFileName.LastIndexOf(
"
.
"
));
//
保存图片
string
strSaveUrl
=
Server.MapPath(
@"
../GiftsImg
"
)
+
@"
\simg\
"
+
strGuid
+
strFileExt.ToLower();
b.Save(strSaveUrl,GetImageType(strContentType));
b.Dispose();
g.Dispose();
return
strGuid
+
strFileExt;
}
}
查看全文
相关阅读:
如何理解javaScript对象?
web移动端开发技巧与注意事项汇总
javaScript基础语法(上)
css选择器的使用详解
css属性兼容主流浏览器
前端开发必备站点汇总
Highchart基础教程-图表配置
Highchart基础教程-图表的主要组成
Highcharts入门小示例
Highcharts配置
原文地址:https://www.cnblogs.com/myx/p/154036.html
最新文章
Jupyter Notebook 快捷键
Python——数据分析,Numpy,Pandas,matplotlib
使用mobx 创建前端store并使用
url跳转问题
react 实现圆环进度条
使用在react hooks+antd ListView简单实现移动端长列表功能
websocket+node建立聊天室简单使用
react中用swiper实现大图功能
ios 软键盘弹出布局被顶上去 已解决
三角小标志
热门文章
date-fns时间库的基本使用
颜色color转为rgb格式
了解npm的文件结构(npm-folders)和配置文件(npm-mrc)
包、模块、组件的定义和区别
初识npm
如何高效学习和工作(撸代码)
koala预编译工具的使用
pc端与移动端的区别
xhtml、html与html5的区别
javaScript对象-基本包装类型的详解
Copyright © 2011-2022 走看看