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 | } |