我有几个要用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 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减少色彩(在处理过程中不破坏图像)?

谢谢!

最佳答案

使用treedepth=8, measure_error=1。参见the documentation for details

您也可以考虑将YIQ颜色空间用作建议的here

关于imagemagick - 等于 “-colors”选项的MagickWand是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5642621/

10-09 03:14