通过操作颜色类型减少 PNG 字节 - 使用 ImageMagick 没有成功

问题描述 投票:0回答:1

我想看看是否可以通过更改 png 颜色类型来减少 PNG 的字节数。我试图保持尽可能高的尺寸(理想情况下为 100 或 150)。这些图像并不复杂,我认为我可以使用 1 位深度的索引颜色(颜色类型 3),但我的方法似乎不起作用。有人成功实现过吗?

我在规范中看到:

这篇文章似乎涵盖了该主题,但我进行了一些测试:

当我运行这个时:

magick identify A.png

我得到了这个:

A.png PNG 100x100 100x100+0+0 8-bit sRGB 1676B 0.000u 0:00.001

我跑了这个:

convert A.png -type palette -depth 1 convertedA.png
magick identify convertedA.png

结果是:

convertedA.png PNG 100x100 100x100+0+0 8-bit sRGB 3c 1544B 0.000u 0:00.002

我运行了这些命令:

convert A.png -background white -flatten -type palette -depth 1 -colors 2 c1A.png
magick -identify c1A.png

结果是:

c1A.png PNG 100x100 100x100+0+0 8-bit sRGB 2c 1532B 0.000u 0:00.001

我在线程中运行了更新的命令:

A.png -background white -flatten -type palette -depth 1 -colors 2 output.png
magick identify output.png

并得到:

output.png PNG 100x100 100x100+0+0 8-bit sRGB 2c 1532B 0.000u 0:00.000

所以它们仍然是 8 位,并且大小没有显着变化(1,676 到 1,544 到 1,532 到 1,532)。

我也看到了这篇文章,但它有点过时了。

imagemagick png imagemagick-convert
1个回答
0
投票

您的图像包含 168 种颜色和 672 字节的 ICC 配置文件。您可以使用 ImageMagick 查看这两个统计数据,如下所示:

magick identify -verbose YOURIMAGE

或者您可以使用以下方法来计算颜色:

magick -format %k GbeWF.png info:
168

您或许还可以通过以下方式查看 ICC 配置文件的大小:

exiftool -v YOURIMAGE

我不知道你真正想做什么,但你可以使用以下方法删除 ICC 配置文件并将颜色减少到 2:

magick YOURIMAGE -colors 2 -strip result.png

然后再次检查:

magick identify -verbose YOURIMAGE

并查看输出末尾附近的字节大小、PNG 颜色模式和 PNG 位深度。

© www.soinside.com 2019 - 2024. All rights reserved.