public static Bitmap
GetThumbnail(Bitmap b, int destHeight, int destWidth) { System.Drawing.Image
imgSource = b; System.Drawing.Imaging.ImageFormat
thisFormat = imgSource.RawFormat; int sW
= 0, sH = 0; //
按比例缩放 int sWidth
= imgSource.Width; int sHeight
= imgSource.Height; if (sHeight
> destHeight || sWidth > destWidth) { if ((sWidth
* destHeight) > (sHeight * destWidth)) { sW
= destWidth; sH
= (destWidth * sHeight) / sWidth; } else { sH
= destHeight; sW
= (sWidth * destHeight) / sHeight; } } else { sW
= sWidth; sH
= sHeight; } Bitmap
outBmp = new Bitmap(destWidth,
destHeight); Graphics
g = Graphics.FromImage(outBmp); g.Clear(Color.Transparent); //
设置画布的描绘质量 g.CompositingQuality
= CompositingQuality.HighQuality; g.SmoothingMode
= SmoothingMode.HighQuality; g.InterpolationMode
= InterpolationMode.HighQualityBicubic; g.DrawImage(imgSource, new Rectangle((destWidth
- sW) / 2, (destHeight - sH) / 2, sW, sH), 0, 0, imgSource.Width, imgSource.Height, GraphicsUnit.Pixel); g.Dispose(); //
以下代码为保存图片时,设置压缩质量 EncoderParameters
encoderParams = new EncoderParameters(); long []
quality = new long [1]; quality[0]
= 100; EncoderParameter
encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality,
quality); encoderParams.Param[0]
= encoderParam; imgSource.Dispose(); return outBmp; } |
c# 图片按比例缩放
最新推荐文章于 2025-06-13 11:16:24 发布