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

近一个月csdn的blog我死活也写不上去, 终于今天不在报错了,一气发完....

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值