Imagemagick “为什么?”;将x.png转换为y.png“;是否创建具有不同大小(KB)的图像?

Imagemagick “为什么?”;将x.png转换为y.png“;是否创建具有不同大小(KB)的图像?,imagemagick,Imagemagick,我有一些图像,我正试图通过调整它们的大小将它们标准化到一定的比例。 当我开始调整图像的大小时,我注意到它们的体积(KB)比原始图像大得多 我通过简单的操作进一步检查了它: 将x.png转换为y.png 并且得到了一些不同。例如,在一种情况下,x.png为143KB,y.png为208KB 由于我也在优化图像大小,我想知道是否有人知道为什么会出现这种情况,以及解决这个问题的建议 我在Windows7上使用Imagemagick 6.6.4-Q16 谢谢,阿米特 编辑: 谢谢你们的建议,伙计们,很抱

我有一些图像,我正试图通过调整它们的大小将它们标准化到一定的比例。 当我开始调整图像的大小时,我注意到它们的体积(KB)比原始图像大得多

我通过简单的操作进一步检查了它: 将x.png转换为y.png 并且得到了一些不同。例如,在一种情况下,x.png为143KB,y.png为208KB

由于我也在优化图像大小,我想知道是否有人知道为什么会出现这种情况,以及解决这个问题的建议

我在Windows7上使用Imagemagick 6.6.4-Q16

谢谢,阿米特

编辑:

谢谢你们的建议,伙计们,很抱歉回复太晚了!这是我试图做的,这是结果。原始图像为112KB。在没有参数的情况下进行转换会生成169KB的图像。在-o7上使用OptiPNG(PNGCrush对我不起作用)会产生113KB的结果。然后我尝试对0-99之间的每一个X进行转换质量X,我发现对于质量90,我实现了116KB的文件大小,因此OptiPNG更好。然而,当我转换-调整大小到一个较小的图像(按比例),我得到一个199KB没有参数,196KB的最佳转换质量X(X=0),196KB的OptiPNG。 当我希望文件更小时,文件大小增加了75%,因为我将图像的大小从377x2290调整为234x1419,增加了35%。有什么想法吗

谢谢

编辑-附加图像+调查的调整大小问题:

下面是三幅图像的链接(请看标题):原始图像、简单ImageMagick转换后的图像以及optipng后的相同输出图像。

此外,我认为ImageMagick的resize选项可能存在问题。我做了以下练习来隔离它: 对于1-100之间的每x: 转换a.png-调整x%a_x.png的大小

正如预期的那样,图像的大小几乎不断地从1%增加到100%。40%和50%略有下降。问题是,从40%开始,输出图像大小会绕过原始图像大小。只有当达到100%时,图像大小才会大幅下降到原始大小(根据我的第一次编辑,实际情况稍微好一点——169KB而不是112KB,在Optipng之后是113KB)

即使在每个输出文件上运行带有-o7的Optipng也不能纠正这一点

您可以在下图中看到此实验的结果:

PNG有许多不同的设置会影响压缩,并且不能保证默认的ImageMagick设置会选择特定的高效压缩

最简单的解决方案是在ImageMagick完成后运行PNG。默认情况下,它应该生成接近最佳压缩的内容,但您可以要求它进行更详尽的测试,以达到绝对最小值

关于您的编辑:这里您必须注意的一件事是调整大小的方法。ImageMagick在调整大小时会使用一个新的参数,这会对使用PNG压缩图像的程度产生很大影响:毕竟,PNG是无损压缩的,所以它不能像JPEG那样近似


哪种过滤器适合你实际上取决于你有什么类型的图像,但你可以尝试各种选择,看看什么看起来不错。不同的图像可能需要不同的过滤器。

我猜输入图像不是由ImageMagick创建的?可能ImageMagick没有最佳压缩,或者输入是调色板图像,ImageMagick创建RGB图像。在前一种情况下,您可以在缩小的图像上运行以减小大小。

好的,问题是根据Michael的建议使用过滤器

以下是我所做的:

convert -list filter > 1.txt
获取所有筛选器的列表。 然后,对于该列表中的每个过滤器x,我做了:

convert -filter x -resize 234x1419 a.png b_x.png
我记录了文件大小,然后对每个文件执行“optpng-o7”

在我的案例中,这个图像的最佳过滤器是“Box”:它是唯一一个真正从112KB减少到111KB,然后通过optipng减少到81KB的过滤器

我认为有趣的是,在所有这些过程之后,实际上只有长方体过滤器减小了图像的大小,即使在调整大小过程之后,它们的像素都减少了

顺便说一句:注意以下陷阱

convert -filter Box -resize 234x1419 a.png a_box.png
结果是一个112KB的图像,可以压缩到81KB,正如我上面所说的。然而:

convert a.png -filter Box -resize 234x1419 a_box.png

结果显示图像大小为199KB

谢谢你的建议!请查看我的问题编辑。谢谢,我还将查看筛选选项,也许这就是问题所在。你能帮我解决这个问题吗()?我觉得GD可以减小PNG图像的大小很奇怪,但Imagick却不能。@Alix:我对ImageMagick了解不多,只是一些细节。除了答案中已经提到的,我看不出我能对这个问题做出什么贡献。谢谢你的建议!请看我的编辑。你能把原始的和缩小的图片上传到某个地方吗?