首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#兑现图片生成缩略图

2012-12-30 
c#实现图片生成缩略图1,判断图片的宽和高的比例,然后进行缩放,以便于使缩略图不变形。2,DrawImage方法为缩

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


 

热点排行