如何将图像文件大小更改为所需大小?就像一张 800KB 的图片变成 100KB 的?
我有一个 3MB 尺寸的图像:(2560 X 1600),300 dpi 和 24 位深度。我只是在 Bitmap 中读取它,将其分辨率更改为 150 dpi 并用新名称保存,并认为可能会将其减少到几乎一半原始文件,但新文件保持相同大小,并且 dpi SetResolution 不会产生任何效果。
Bitmap image = Bitmap.FromFile("myPic.jpeg");
image.SetResolution(96, 96);
image.Save("newPic.jpeg");
然后我使用了这段代码
// Reads Image
Bitmap image = Bitmap.FromFile("myPic.jpeg");
// Sets canvas with new dpi but same dimensions and color depth
Bitmap canvas = new Bitmap(image.Width, image.Height, PixelFormat.Format24bppRgb);
canvas.SetResolution(150, 150);
// Draw image on canvas through graphics
Graphics graphics = Graphics.FromImage(canvas);
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height),
new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
// Saved Image
bitmap.Save("newPic.jpeg");
此处 dpi 已更改为新文件,但文件大小跳至 7.84MB
错在哪里?dpi 对文件大小有影响吗?
谢谢您的考虑。祝好运