C#生成高清縮略圖
/// <summary>
/// 為圖片生成縮略圖
/// </summary>
/// <param name="phyPath">原圖片的路徑</param>
/// <param name="width">縮略圖寬</param>
/// <param name="height">縮略圖高</param>
/// <returns></returns>
public System.Drawing.Image GetThumbnail(System.Drawing.Image image, int width, int height)
{
Bitmap bmp = new Bitmap(width, height);
//從Bitmap創建一個System.Drawing.Graphics
System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp);
//設置
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//下面這個也設成高質量
gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
//下面這個設成High
gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//把原始圖像繪制成上面所設置寬高的縮小圖
System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, width, height);gr.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel); return bmp; } </pre><br />
調用方法
HttpPostedFile file = photoFile.PostedFile; if (!file.ContentType.Contains("image")) { return "照片格式不合法"; } string ext = Path.GetExtension(file.FileName).ToLower(); if (ext != ".jpg" && ext != ".gif" && ext != ".png" && ext != ".jpeg") { return "請您上傳jpg、gif、png圖片"; } if (file.ContentLength > 5 * 1024 * 1024) { return "請您上傳512字節內的圖片"; } string newName = Guid.NewGuid().ToString(); string tempPath = "upload/"; string img = tempPath + newName + ext; string filePath = Server.MapPath(img); if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(file.InputStream)) { GetThumbnail(originalImage, 504, 374).Save(filePath); }
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!