我使用下面的代码将JPG文件大小调整为200 x240像素。所附的示例文件大小为900 x600像素,只有84 kb。但是,当我使用ImageSharp保存调整后的文件时,生成的图像为435 kb!为什么较小的图像文件大小较大?
我注意到原始图像的位深度是24位,但ImageSharp存储它的位深度是32位。我如何才能减少这一点?
x1c 0d1x的数据
调整大小的图像:
的
var thumbImage = image.Clone(x => x.GetCurrentSize());
if (thumbImage.Width > 200)
{
thumbImage.Mutate(m =>
{
m.Resize(new ResizeOptions
{
Mode = ResizeMode.Min,
Size = new Size(200, 0)
});
});
字符串
2条答案
按热度按时间g6ll5ycj1#
我花了一些时间来弄清楚如何为24位深度做这件事,我希望他们扩展了保存方法更明显的参数,无论如何,这里是代码。
字符串
如果你保存为jpeg格式(就像你在这里的原始图像),你将得到更小的图像尺寸,位深度将保持与源代码相同。
型
fslejnso2#
我也遇到了同样的问题--当转换PNG文件时,生成的文件大小是原始文件的两倍(即使尺寸更小)。
我通过改变编码器的颜色类型来修复它:
字符串
这使得文件大小变小了(看起来与尺寸的减少成了正确的比例)。我没有注意到图像质量有任何可察觉的变化。