我有几张我正用ImageMagick处理的图片。在这种情况下,我将RGBA PNG转换为索引PNG。如果我使用convert
工具,我可以合理控制索引PNG中的颜色数量:
$ convert infile.png -colors 128 outfile.png
$ identify outfile.png
outfile.png PNG 77x77 77x77+0+0 8-bit PseudoClass 91c 3.03KiB 0.000u 0:00.000
它似乎大大减少了颜色计数(91 <128)我试图用MagickWand的MagickQuantizeImage(wand, 128, RGBColorspace, tree_depth=1, 0, 0)
进行相同的转换。该功能的签名是
MagickBooleanType MagickQuantizeImage(
MagickWand *wand,
const size_t number_colors,
ColorspaceType colorspace,
const size_t treedepth,
const MagickBooleanType dither,
const MagickBooleanType measure_error)
最终结果是颜色太少的图像(只有11!):
$ identify wandoutfile.png
wandoutfile.png PNG 77x77 77x77+0+0 8-bit PseudoClass 11c 1.31KiB 0.000u 0:00.000
有没有人知道如何使用MagickWand减少颜色(不会在此过程中破坏图像?)
谢谢!
答案 0 :(得分:1)
使用treedepth=8, measure_error=1
。请参阅the documentation for details。
您也可以考虑使用建议的here的YIQ颜色空间。