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, intheight)
|
09 |
{
|
10 |
Bitmap bmp = newBitmap(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 = newSystem.Drawing.Rectangle(0, 0, width, height);
|
21 |
|
22 |
gr.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
|
23 |
returnbmp;
|
24 |
}
|
调用方法
01 |
HttpPostedFile file = photoFile.PostedFile; |
02 |
if(!file.ContentType.Contains("image"))
|
03 |
{
|
04 |
return"照片格式不合法";
|
05 |
}
|
06 |
stringext = 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 |
stringnewName = Guid.NewGuid().ToString();
|
16 |
stringtempPath = "upload/";
|
17 |
stringimg = tempPath + newName + ext;
|
18 |
stringfilePath = 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 |
}
|