.net 生成缩略图

时间:2021-08-05 14:06:35
public static void CreateSmallImage(string minImageFullPath, System.Drawing.Image originalImage, int x, int y, int size)
{
System.Drawing.Image img = null;
System.Drawing.Graphics graphic = null; int ow = originalImage.Width;
int oh = originalImage.Height;
int width;
int height;
     //最小边宽度为size,按比例生成
if (ow > oh)
{
height = size;
width = size * ow / oh; }
else
{
width = size;
height = size * oh / ow;
}
img = new System.Drawing.Bitmap(width, height);
graphic = System.Drawing.Graphics.FromImage(img);
graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量,低速度呈现平滑程度
graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
graphic.Clear(Color.Transparent); //在指定位置并且按指定大小绘制原图片的指定部分ImageFormat.Jpeg
graphic.DrawImage(originalImage, new Rectangle(, , width, height), new Rectangle(x, y, ow, oh), GraphicsUnit.Pixel);      //默认保存格式为ImageFormat.Png图片还是比较大,所以存为ImageFormat.Jpeg格式 img.Save(minImageFullPath,ImageFormat.Jpeg);
if (img != null)
{
img.Dispose();
}
if (graphic != null)
{
graphic.Dispose();
}
}

OriginalImage 参数

System.Drawing.Image image = System.Drawing.Image.FromFile(originalImagePath);
//或 HttpPostedFile file= Request.Files["Filedata"];
//System.Drawing.Image image = System.Drawing.Image.FromStream(file.InputStream);
CreateSmallImage(minFilePath, image, , , );