C# 生成缩略图
调用:
private void button1_Click(object sender, EventArgs e) { string filePath = Application.StartupPath + "/242931.jpg"; byte[] ba = File.ReadAllBytes(filePath); Stream s = new MemoryStream(ba, true); using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(s)) { GetThumbnail(originalImage, 200, 100).Save("c:\\aaabb.jpg"); } }
主要代码:
/// <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; }
浙公网安备 33010602011771号