/// <summary> ???????/// 生成缩略图 ???????/// </summary> ???????/// <param name="FromImagePath">源图路径(绝对路径)</param> ???????/// <param name="ToImagePath">缩略图路径(绝对路径)</param> ???????/// <param name="MaxWidth">最大宽度</param> ???????/// <param name="MaxHeight">最大高度</param> ???????public static void CreatePic(string FromImagePath, string ToImagePath, double MaxWidth, double MaxHeight) ???????{ ???????????Bitmap tmp = null; ???????????Graphics g = null; ???????????//double Max_width = 110, Max_height = 110;//假设最大宽度以及最大高度 ???????????int Width = 0;//框条和卡纸的宽度 ???????????int Height = 0;//框条和卡纸的高度 ???????????double wmp = 1, hmp = 1, default_pparm = 1;//默认宽的比例,默认高对应的比例,最大宽度比例,最大高度比例,默认实际比例,最大实际比例 ???????????System.Drawing.Image imgPic = null;//画芯 ???????????imgPic = System.Drawing.Image.FromFile(FromImagePath); ???????????Width = imgPic.Width; ???????????Height = imgPic.Height; ???????????wmp = MaxWidth / Width;//最大宽度比例 ???????????hmp = MaxHeight / Height;//最大高度比例 ???????????default_pparm = wmp < hmp ? wmp : hmp;//默认实际比例 ???????????if (default_pparm > 1) ???????????{ ???????????????default_pparm = 1; ???????????} ???????????Width = (int)(Width * default_pparm); ???????????Height = (int)(Height * default_pparm); ???????????tmp = new Bitmap((int)(Width), (int)(Height));//最大的容器 ???????????g = Graphics.FromImage(tmp); ???????????//g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, tmp.Width, tmp.Height)); ???????????Rectangle Boxs = new Rectangle(0, 0, imgPic.Width, imgPic.Height); ???????????Rectangle Boxd = new Rectangle(0, 0, ??????????????????????????????????????????(int)(Width), (int)(Height));//算图的起点 ???????????g.DrawImage(imgPic, Boxd, Boxs, GraphicsUnit.Pixel); ???????????tmp.Save(ToImagePath, ImageFormat.Jpeg); ???????}
.NET 生成生成缩略图
原文地址:https://www.cnblogs.com/Xanthus/p/9589610.html