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;
}
}
查看全文
相关阅读:
P4715 【深基16.例1】淘汰赛
P4913 【深基16.例3】二叉树深度
P1478 陶陶摘苹果(升级版)
P1223 排队接水
【深基12.例1】部分背包问题
全排列和组合
P1036 选数
100——第25例
100——第24例
100——第23例
原文地址:https://www.cnblogs.com/myx/p/154036.html
最新文章
WPF学习(2)XAML
WPF学习(1)WPF概述
网站分页功能(获取页面数据/分页按钮信息)
nginx入门
@RequestParam注解加与不加的区别
SpringBoot使用Redis时为什么常常需要自己写一个RedisConfig类?
zookeeper和dubbo入门
Java8的lambda表达式入门
Java线程创建中的静态代理模式
Java中的类初始化和实例初始化
热门文章
Java中的参数传递
在IDEA中搭建SpringBoot项目
八皇后问题
循环比赛日程
归并和快排
P1106 删数问题
单向链表(数组模拟)
P1002 过河卒
【深基15.例2】寄包柜
P3156 【深基15.例1】询问学号
Copyright © 2011-2022 走看看