C#实现图片生成缩略图

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
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();
        }
 
    }

标签: isp

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:C# 通过post发送和接收数据的范例代码

下一篇:jQuery Uploadify结合C#实现带进度条的上传