科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件.net生成图片的缩略图的2种方法

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文主要讲述.net生成图片的缩略图的2种方法。

作者:abandonship 来源:CSDN 2008年2月2日

关键字: 缩略图 Windows

  • 评论
  • 分享微博
  • 分享邮件

 实现方法有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左右。
 


查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章