失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C# 生成缩略图 方法

C# 生成缩略图 方法

时间:2023-02-07 03:18:29

相关推荐

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

如果觉得《C# 生成缩略图 方法》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。