正文

.net生成图片的缩略图的2种方法2008-08-23 09:49:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/37803.html

分享到:

.net生成图片的缩略图的2种方法

开发者在线 Builder.com.cn 更新时间:2008-02-02作者:abandonship 来源:CSDN

本文关键词: 缩略图 .net

 实现方法有2个方式:

 1. 使用Image的GetThumbnailImage 方法直接生成压缩图片,大概大概如此:

   file://设置 原图片 对象的 EncoderParameters 对象,设置清晰度
   ImageCodecInfo ici = GetCodecInfo((string)htmimes[mFileExtName]);
   EncoderParameters parameters = new EncoderParameters(1);
   parameters.Param[0] = new EncoderParameter(Encoder.Quality,lngDefinition);

   System.Drawing.Image.GetThumbnailImageAbort myCallback =new

   System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
   System.Drawing.Image myThumbnail = image.GetThumbnailImage(intNewWidth, intNewHeight,

 myCallback, IntPtr.Zero);
  myThumbnail.Save(txtNewPath, ici, parameters);

 2. 使用Graphics 重新绘制图象

   ImageCodecInfo ici = GetCodecInfo((string)htmimes[mFileExtName]);
   EncoderParameters parameters = new EncoderParameters(1);
   parameters.Param[0] = new EncoderParameter(Encoder.Quality,lngDefinition);

   Bitmap objNewBitMap = new Bitmap(intNewWidth, intNewHeight, PixelFormat.Format32bppArgb);
   //从指定的 Image 对象创建新 Graphics 对象
   Graphics objGraphics = Graphics.FromImage(objNewBitMap);
   //清除整个绘图面并以透明背景色填充
   objGraphics.Clear(Color.Transparent);
   //在指定位置并且按指定大小绘制 原图片 对象
   objGraphics.DrawImage(image, new Rectangle(0, 0, intNewWidth, intNewHeight));
   objNewBitMap.Save(txtNewPath + txtNewFileName+"."+mFileExtName, ici, parameters);

  注意lngDefinition是调整清晰度的LONG型参数,一般50-90 就很清晰了。

  2种效果,(相同宽度高度)清晰度上Graphics较好,图片Graphics绘制的也比较小,小1/3左右。
 


查看本文来源

阅读(1495) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册