读书人

c#兑现图片生成缩略图

发布时间: 2012-12-30 10:43:15 作者: rapoo

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();        }    }


读书人网 >C#

热点推荐