| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
enpc
10年前发布

C#实现图片生成缩略图

1,判断图片的宽和高的比例,然后进行缩放,以便于使缩略图不变形。
2,DrawImage方法为缩略图绘制边框,这样,浏览起来比较美观。
3,调用Save方法将生成的缩略图保存到指定的目录下。

    private void MakeThumbnail(string sourcePath, string newPath, int width, int height)      {          System.Drawing.Image ig = System.Drawing.Image.FromFile(sourcePath);          int towidth = width;          int toheight = height;          int x = 0;          int y = 0;          int ow = ig.Width;          int oh = ig.Height;          if ((double)ig.Width / (double)ig.Height > (double)towidth / (double)toheight)          {              oh = ig.Height;              ow = ig.Height * towidth / toheight;              y = 0;              x = (ig.Width - ow) / 2;             }          else          {              ow = ig.Width;              oh = ig.Width * height / towidth;              x = 0;              y = (ig.Height - oh) / 2;          }          System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);          System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);          g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;          g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;          g.Clear(System.Drawing.Color.Transparent);          g.DrawImage(ig, new System.Drawing.Rectangle(0, 0, towidth, toheight), new System.Drawing.Rectangle(x, y, ow, oh), System.Drawing.GraphicsUnit.Pixel);          try          {              bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg);          }          catch (Exception ex)          {              throw ex;          }          finally          {              ig.Dispose();              bitmap.Dispose();              g.Dispose();          }         }