我想使用ImageMagick将32位PNG转换为8位PNG,但是半透明像素会丢失。如何解决这个问题?我正在使用以下命令:
convert original.png PNG8:output.png
我想使用ImageMagick将32位PNG转换为8位PNG,但是半透明像素会丢失。如何解决这个问题?我正在使用以下命令:
convert original.png PNG8:output.png
PNG8:
说明符,而只是使用-colors 256
或-colors 255
*来减少图像中的颜色数量来生成索引8位PNG。不幸的是,至少根据我使用ImageMagick 6.8.9进行的测试,生成的图像具有一些相当奇怪且不必要丑陋的颜色量化伪影。pngquant 256 < original.png > output.png
从左到右:
pngquant 256 < input.png > output.png
量化convert input.png -colors 255 output.png
*量化convert input.png PNG8:output.png
量化convert input.png -colors 255 PNG8:output.png
*量化*) 在下面的评论中,建议使用-colors 255
是必要的,“为‘背景’颜色保留一个条目。” 经过我的测试,我并没有观察到这实际上是正确的;使用-colors 256
仍将生成8位颜色映射PNG,其量化伪影在质量上与-colors 255
的输出相似,但细节有所不同。 尽管如此,为了保险起见,我以上面的示例使用了-colors 255
。 通过减少一种颜色的颜色映射表大小本身不应显着影响结果的质量,因为使用pngquant 255
进行测试将会演示。
-colors 255
而不是-colors 256
。ImageMagick需要为“背景”颜色保留一个条目。 - Glenn Randers-Pehrson