等比例缩放图片(C#)

  1. private Bitmap ZoomImage(Bitmap bitmap, int destHeight, int destWidth)
  2. {
  3. try
  4. {
  5. System.Drawing.Image sourImage = bitmap;
  6. int width = 0, height = 0;
  7. //按比例缩放
  8. int sourWidth = sourImage.Width;
  9. int sourHeight = sourImage.Height;
  10. if (sourHeight > destHeight || sourWidth > destWidth)
  11. {
  12. if ((sourWidth * destHeight) > (sourHeight * destWidth))
  13. {
  14. width = destWidth;
  15. height = (destWidth * sourHeight) / sourWidth;
  16. }
  17. else
  18. {
  19. height = destHeight;
  20. width = (sourWidth * destHeight) / sourHeight;
  21. }
  22. }
  23. else
  24. {
  25. width = sourWidth;
  26. height = sourHeight;
  27. }
  28. Bitmap destBitmap = new Bitmap(destWidth, destHeight);
  29. Graphics g = Graphics.FromImage(destBitmap);
  30. g.Clear(Color.Transparent);
  31. //设置画布的描绘质量
  32. g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
  33. g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  34. g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
  35. g.DrawImage(sourImage, new Rectangle((destWidth - width) / 2, (destHeight - height) / 2, width, height), 0, 0, sourImage.Width, sourImage.Height, GraphicsUnit.Pixel);
  36. g.Dispose();
  37. //设置压缩质量
  38. System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters();
  39. long[] quality = new long[1];
  40. quality[0] = 100;
  41. System.Drawing.Imaging.EncoderParameter encoderParam = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
  42. encoderParams.Param[0] = encoderParam;
  43. sourImage.Dispose();
  44. return destBitmap;
  45. }
  46. catch
  47. {
  48. return bitmap;
  49. }
  50. }

原文地址:https://www.cnblogs.com/password1/p/8968952.html

时间: 2024-10-11 10:26:14

等比例缩放图片(C#)的相关文章

php等比例缩放图片及剪切图片代码

php等比例缩放图片及剪切图片代码分享 /** * 图片缩放函数(可设置高度固定,宽度固定或者最大宽高,支持gif/jpg/png三种类型) * Author : Specs * * @param string $source_path 源图片 * @param int $target_width 目标宽度 * @param int $target_height 目标高度 * @param string $fixed_orig 锁定宽高(可选参数 width.height或者空值) * @ret

js等比例缩放图片(转载)

标签:等比例缩放 时间:2009-03-16 已阅读:7475 js等比例缩放图片,这个功能非常实用,当网页加载一个尺寸比较大的图片时,往往会把一个网页撑的变形,页面变得很难看,于是我们就想到了用JS去控制超出一定范围的图片,以稳定页面布局,本代码段就是完成了此功能,而且代码非常简洁,效果很好,你可以运行代码看下效果. <html><head><title>等比例缩放图片</title><script>function DrawImage(Img

Android根据屏幕宽度,按比例缩放图片

原文链接:http://www.codeceo.com/article/android-zoom-image.html ImageView有scaleType属性可以缩放图片,让图片铺满屏幕宽度,但是会出现压缩或裁剪的情况. ImageView的scaleType的属性分别是matrix(默认).center.centerCrop.centerInside.fitCenter.fitEnd.fitStart.fitXY android:scaleType="center" 保持原图的大

JS等比例缩放图片,限定最大宽度和最大高度

JavaScript //图片按比例缩放 var flag=false; function DrawImage(ImgD,iwidth,iheight){ //参数(图片,允许的宽度,允许的高度) var image=new Image(); image.src=ImgD.src; if(image.width>0 && image.height>0){ flag=true; if(image.width/image.height>= iwidth/iheight){ i

Android 等比例缩放图片

// 缩放图片 public static Bitmap zoomImg(String img, int newWidth ,int newHeight){ // 图片源 Bitmap bm = BitmapFactory.decodeFile(img); if(null!=bm){ return zoomImg(bm,newWidth,newHeight); } return null; } public static Bitmap zoomImg(Context context,String

js 等比例缩放图片

//第一个参数是当前对象this,第二个是宽,第三个是高 function datuIMG(datu,kuan,chang){ datu.width = kuan*100; datu.height = chang*100; //图片等比例缩小 if(datu.width*chang>datu.height*kuan){ datu.width=kuan; datu.height=(kuan*chang)/kuan; } else{ datu.width=(chang*kuan)/chang; da

PHP学习笔记:等比例缩放图片

直接上代码,imgzip($src,$newwid,$newhei)这个函数带进去的分别是原图片.缩放要求的宽度.缩放的长度.代码都备注了,不懂可以留言哈哈 <?php //压缩图片 缩略图 $src= "xiezheng.jpg"; $newwid=640; $newhei= 480; function imgzip($src,$newwid,$newhei){ $imgInfo = getimagesize($src); $imgType = image_type_to_ex

等比例缩放图片

public class GetThumbnailImg { /// <summary> /// 读取图片的缩略图 /// </summary> /// <param name="PicPath">源图片的路径</param> /// <param name="PicTemp">生成缩略图的目录</param> /// <param name="Width">生成

Android imageView图片按比例缩放

android:scaleType可控制图片的缩放方式,示例代码如下: [html] view plaincopyprint? <ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleType="centerInside" android:layout_width="60dip" android:layout_height=&q