01 |
/// <summary> |
02 |
/// 为图片生成缩略图 |
03 |
/// </summary> |
04 |
/// <param name="phyPath">原图片的路径</param> |
05 |
/// <param name="width">缩略图宽</param> |
06 |
/// <param name="height">缩略图高</param> |
07 |
/// <returns></returns> |
08 |
public System.Drawing.Image GetThumbnail(System.Drawing.Image image, int width, int height) |
09 |
{ |
10 |
Bitmap bmp = new Bitmap(width, height); |
11 |
//从Bitmap创建一个System.Drawing.Graphics |
12 |
System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp); |
13 |
//设置 |
14 |
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; |
15 |
//下面这个也设成高质量 |
16 |
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; |
17 |
//下面这个设成High |
18 |
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; |
19 |
//把原始图像绘制成上面所设置宽高的缩小图 |
20 |
System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, width, height); |
21 |
|
22 |
gr.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); |
23 |
return bmp; |
24 |
} |
调用方法
01 |
HttpPostedFile file = photoFile.PostedFile; |
02 |
if (!file.ContentType.Contains( "image" )) |
03 |
{ |
04 |
return "照片格式不合法" ; |
05 |
} |
06 |
string ext = Path.GetExtension(file.FileName).ToLower(); |
07 |
if (ext != ".jpg" && ext != ".gif" && ext != ".png" && ext != ".jpeg" ) |
08 |
{ |
09 |
return "请您上传jpg、gif、png图片" ; |
10 |
} |
11 |
if (file.ContentLength > 5 * 1024 * 1024) |
12 |
{ |
13 |
return "请您上传512字节内的图片" ; |
14 |
} |
15 |
string newName = Guid.NewGuid().ToString(); |
16 |
string tempPath = "upload/" ; |
17 |
string img = tempPath + newName + ext; |
18 |
string filePath = Server.MapPath(img); |
19 |
if (!Directory.Exists(tempPath)) |
20 |
{ |
21 |
Directory.CreateDirectory(tempPath); |
22 |
} |
23 |
using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(file.InputStream)) |
24 |
{ |
25 |
GetThumbnail(originalImage, 504, 374).Save(filePath); |
26 |
} |