减少PNG图像中的颜色会使文件更大

时间:2010-11-17 11:20:18

标签: graphics colors png imagemagick graphicsmagick

我正在使用ImageMagick通过减少图像中的颜色以编程方式减小PNG图像的大小。我得到图像唯一颜色并将其除以2.然后我将此值分配给-colors选项,如下所示:

variable = unique-colors / 2

convert image.png -colors variable -depth 8

我认为这会大大减小图像的大小,但会增加磁盘上的图像大小。任何人都可以对此有所了解。

感谢。

编辑:结果问题是抖动。抖动有助于减少彩色图像看起来更像原件,但会增加图像尺寸。要删除ImageMagick中的抖动,请在命令中添加+抖动。 实施例

转换CandyBar.png + dither -colors 300 -dethth 8 smallerCandyBar.png

3 个答案:

答案 0 :(得分:3)

Imagemagick可能会使用一些抖动算法来使图像显示为具有原始数量的颜色。这增加了图像数据“随机性”(单个像素在某些地方重新着色以混合成其他颜色),并且该图像数据也不再包装。进一步研究convert命令如何进行抖动。您还可以通过在gimp / equivalent程序中添加第二个图像作为图层并调整透明度来查看此效果。

答案 1 :(得分:1)

您应该使用pngquant

您无需猜测颜色数量,它具有实际的--quality设置:

pngquant --verbose --quality=70 image.png

以上将自动选择与JPEG质量相同的比例匹配给定质量所需的颜色数量(100 =完美,70 = OK,20 =糟糕)。

pngquant具有明显更好的量化算法,量化越好,质量/文件大小越好。

并且pngquant不抖动没有抖动的区域,这可以避免在文件中添加不必要的噪音/随机性。

答案 2 :(得分:0)

“新”PNG的压缩效果不如原始压缩效果好。