【发布时间】:2010-12-28 05:26:27
【问题描述】:
我的图片文件是 6k jpg 文件,宽度:172px,高度:172px。
我使用以下代码尝试将其大小调整为 128*128px jpg 文件:
public static Image ResizeImage(Image img, int width, int height)
{
var b = new Bitmap(width, height, PixelFormat.Format24bppRgb);
using (Graphics g = Graphics.FromImage(b))
{
g.DrawImage(img, 0, 0, width, height);
}
return b;
}
这段代码奇怪地将文件大小增加到 50k,谁能解释为什么?以及如何将图像大小调整为 128*128px 并保持大小约为 6k。
非常感谢。
DY
【问题讨论】:
-
如果省略 g.SmoothingMode = SmoothingMode.AntiAlias,文件大小是多少?
-
对不起斯图尔特,你是什么意思?
-
@DotNet 用户,你为什么编辑掉
g.SmoothingMode = SmoothingMode.AntiAlias行然后问@Stuart 他的意思?他的问题似乎很清楚。 -
如果要调整图像大小,还应该设置
Graphics.InterpolationMode(如果缩小,最好设置为HighQualityBilinear,如果放大,最好设置为HighQualityBicubic)。否则结果会很丑。 -
在文本编辑器中打开调整大小的“JPG”图像。我敢打赌,文本将以“BM”开头,这意味着您的图像是 BMP(不是 JPEG,但是,Windows 和某些浏览器会从其内容中检测图像类型并正确呈现)。
标签: c# image-processing