我正在编写一个调整照片大小的程序:
Image originalImage = Image.FromFile(pathToOriginalPicture);
Bitmap b = new Bitmap(newWidth, newHeight);
Graphics g = Graphics.FromImage(b);
g.DrawImage(originalImage, 0, 0, newWidth, newHeight);
g.Dispose();
b.Save(pathToOutputPicture, ImageFormat.Jpeg);
我试着设置:
newWidth = originalImage.Width;
newHeight = originalImage.Height;
结果是rezised图片文件变成了〜900K,而原始文件大约是4M。
为什么会这样? 原始图片的质量是否比调整大小的图片更好?怎么样?
我在Photoshop中打开了两张图片,我看到原始图片是72ppi,而重新调整大小的图片是96ppi。这是为什么 ?我能控制一下吗?
非常感谢你的时间!
答案 0 :(得分:2)
您没有告诉我们您的图片的原始格式,但您保存为JPEG格式:
b.Save(pathToOutputPicture,ImageFormat.Jpeg);
JPEG是一种有损压缩格式。
除了有损外,JPEG还可以输出不同的质量(可配置)。
这就是你的文件大小正在发生的事情:它正在缩小,因为你从无损格式转到有损JPEG格式,或者因为你从JPEG转到JPEG格式的质量较低。
因此减小了尺寸。
答案 1 :(得分:0)
除了您需要设置DPI,压缩级别设置等格式外,请检查您的保存功能是否有接受此类输入的过载。请参阅this documentation。