C# 生成缩略图 方法
生活随笔
收集整理的這篇文章主要介紹了
C# 生成缩略图 方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#region -生成縮略圖-/// <summary>/// 生成縮略圖/// </summary>/// <param name="orginalImagePath">原圖片對象</param>/// <param name="thumbnailPath">縮略圖的路徑</param>/// <param name="width">指定寬度</param>/// <param name="heigth">指定高度</param>/// <param name="model">縮放類型 HW:可以變形 W:指定寬度,高安比例縮放 "H"://指定高度,寬安比例綻放 "Cut"://指定高寬,裁減(不變形)</param>public void MakeThumbnail(Image orginalPric, string thumbnailPath, int width, int height, EnumThumbnailModel model){Image originalImage = orginalPric;//獲得圖片對象int towidth = width;int toheight = height;int x = 0;int y = 0;int ow = originalImage.Width;int oh = originalImage.Height;#region -縮略圖的類型-switch (model){case EnumThumbnailModel.HW://指定高寬縮放(可以變形)break;case EnumThumbnailModel.W://指定寬度,高安比例縮放toheight = originalImage.Height * width / originalImage.Width;break;case EnumThumbnailModel.H://指定高度,寬安比例綻放towidth = originalImage.Width * height / originalImage.Height;break;case EnumThumbnailModel.Cut://指定高寬,裁減(不變形)if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight){oh = originalImage.Height;ow = originalImage.Height * towidth / toheight;y = 0;x = (originalImage.Width - ow) / 2;}else{ow = originalImage.Width;oh = originalImage.Width * towidth / towidth;y = 0;x = (originalImage.Height - oh) / 2;}break;default:break;}#endregion//新建一個bmp圖片Image bitmap = new System.Drawing.Bitmap(towidth, toheight);//新建一個畫板Graphics g = System.Drawing.Graphics.FromImage(bitmap);//設置高質量插值法g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;//設置高質量,低速度呈現平滑程度g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//清空畫布并以透明背景色填充g.Clear(Color.Transparent);//在指定位置并且按指定大小繪制原圖片的指定部分g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),new Rectangle(x, y, ow, oh),GraphicsUnit.Pixel);try{//以jpg格式保存縮略圖bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);}catch (System.Exception e){throw e;}finally{originalImage.Dispose();bitmap.Dispose();g.Dispose();}}/// <summary>/// 生成縮略圖/// </summary>/// <param name="orginalPric">原始圖片</param>/// <param name="thumbnailPath">縮略圖路徑</param>/// <param name="width">寬度</param>/// <param name="heigth">高度</param>/// <param name="model">類型 縮放類型 HW:可以變形 W:指定寬度,高安比例縮放 "H"://指定高度,寬安比例綻放 "Cut"://指定高寬,裁減(不變形)</param>/// <returns></returns>public void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, EnumThumbnailModel mode){Image originalImage = Image.FromFile(originalImagePath);MakeThumbnail(originalImage, thumbnailPath, width, height, mode);}#endregion
轉載于:https://www.cnblogs.com/LikeNeng/p/4215580.html
總結
以上是生活随笔為你收集整理的C# 生成缩略图 方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sql Server 在数据库中所有表所
- 下一篇: JS和CSS中引号的使用