使用GetThumbnailImage进行图片缩放操作
2009-12-01 00:42
513 查看
/// <summary> /// 获取等比例缩放图片的方法 /// </summary> /// <param name="imgPath">待缩放图片路径</param> /// <param name="savePath">缩放图片保存路径</param> /// <param name="format">缩放图片保存的格式</param> /// <param name="scaling">要保持的宽度或高度</param> /// <param name="keepWidthOrHeight">如果为true则保持宽度为scaling,否则保持高度为scaling</param> /// <returns></returns> public bool GetThumbnail(string imgPath, string savePath, ImageFormat format, int scaling, bool keepWidthOrHeight) { try { using (Bitmap myBitmap = new Bitmap(imgPath)) { int width = 0; int height = 0; int tw = myBitmap.Width;//图像的实际宽度 int th = myBitmap.Height;//图像的实际高度 if (keepWidthOrHeight)//保持宽度 { #region 自动保持宽度 if (scaling >= tw) { width = tw; height = th; } else { double ti = Convert.ToDouble(tw) / Convert.ToDouble(scaling); if (ti == 0d) { width = tw; height = th; } else { width = scaling; height = Convert.ToInt32(Convert.ToDouble(th) / ti); } } #endregion } else { #region 自动保持高度 if (scaling >= th) { width = tw; height = th; } else { double ti = Convert.ToDouble(th) / Convert.ToDouble(scaling); if (ti == 0d) { width = tw; height = th; } else { width = Convert.ToInt32(Convert.ToDouble(tw) / ti); height = scaling; } } #endregion } using (Image myThumbnail = myBitmap.GetThumbnailImage(width, height, () => { return false; }, IntPtr.Zero)) { myThumbnail.Save(savePath, format); } } return true; } catch { return false; } }
上面的方法适合在vs2008中使用,如果是2005只需将 using (Image myThumbnail = myBitmap.GetThumbnailImage(width, height, () => { return false; }, IntPtr.Zero))这句换成using (Image myThumbnail = myBitmap.GetThumbnailImage(width, height, new Image.GetThumbnailImageAbort(delegate { return false; }), IntPtr.Zero))即可。
使用示例:GetThumbnail("d:/1.jpg", "d:/2.jpg", ImageFormat.Jpeg, 263, false);
相关文章推荐
- 使用GetThumbnailImage进行图片缩放操作
- 使用GetThumbnailImage进行图片缩放操作
- 使用ImageMagick + Jmagick进行图片操作
- 使用ImageMagick + Jmagick进行图片操作(续2)——实现高质量的图片处理
- 使用ImageMagick + Jmagick进行图片操作(续)
- SDWebImage 第三方框架的使用——网络图片的处理操作
- 使用okhttp进行图片下载,上传,get,post网络请求
- 自定义的ImageView控制,可对图片进行多点触控缩放和拖动
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- 使用Thumbnailtor实现图片的裁剪,缩放
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- 基于Drectshow的GetCurrentImage使用方法无法显示图片的解决方法(本文转载)
- android读取sd卡图片并进行缩放操作
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- GetThumbnailImage 缩放图像会严重失真
- Android单点触控技术,对图片进行平移,缩放,旋转操作
- 一般使用SDWebImage 进行图片的显示和缓存,一般缓存的内容比较多了就需要进行清空缓存
- 使用 Intervention/image 对 Laravel 项目中的图片进行处理
- 使用Glide加载网络图片,使用photoView进行缩放
- 使用Imagenet VGG-19模型进行图片识别