C#生成高清縮略圖

jopen 10年前發布 | 51K 次閱讀 C# .NET開發

    /// <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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!