用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

c#生成缩略图

2013-06-21 作者: wanghuiyong举报

[c#]代码库

public static void GenThumbnail(Image imageFrom, string pathImageTo, int width, int height)
       {

           if (imageFrom == null)
           {
               return;
           }
           // 源图宽度及高度 
           int imageFromWidth = imageFrom.Width;
           int imageFromHeight = imageFrom.Height;
           // 生成的缩略图实际宽度及高度 
           int bitmapWidth = width;
           int bitmapHeight = height;
           // 生成的缩略图在上述"画布"上的位置 
           int X = 0;
           int Y = 0;
           // 根据源图及欲生成的缩略图尺寸,计算缩略图的实际尺寸及其在"画布"上的位置 
           if (bitmapHeight * imageFromWidth > bitmapWidth * imageFromHeight)
           {
               bitmapHeight = imageFromHeight * width / imageFromWidth;
               Y = (height - bitmapHeight) / 2;
           }
           else
           {
               bitmapWidth = imageFromWidth * height / imageFromHeight;
               X = (width - bitmapWidth) / 2;
           }
           // 创建画布 
           Bitmap bmp = new Bitmap(width, height);
           Graphics g = Graphics.FromImage(bmp);
           // 用白色清空 
           g.Clear(Color.White);
           // 指定高质量的双三次插值法。执行预筛选以确保高质量的收缩。此模式可产生质量最高的转换图像。 
           g.InterpolationMode = InterpolationMode.HighQualityBicubic;
           // 指定高质量、低速度呈现。 
           g.SmoothingMode = SmoothingMode.HighQuality;
           // 在指定位置并且按指定大小绘制指定的 Image 的指定部分。 
           g.DrawImage(imageFrom, new Rectangle(X, Y, bitmapWidth, bitmapHeight), new Rectangle(0, 0, imageFromWidth, imageFromHeight), GraphicsUnit.Pixel);
           try
           {
               //经测试 .jpg 格式缩略图大小与质量等最优 
               bmp.Save(pathImageTo, ImageFormat.Jpeg);
           }
           catch
           {
           }
           finally
           {
               //显示释放资源 

               bmp.Dispose();
               g.Dispose();
           }
       }


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...