什么是MagickWand相当于"-colors"选项?

Tro*_*ell 7 imagemagick magickwand

我有几个图像,我正在使用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
Run Code Online (Sandbox Code Playgroud)

它似乎大大减少了颜色计数(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)
Run Code Online (Sandbox Code Playgroud)

最终结果是颜色太少的图像(只有11!):

$ identify wandoutfile.png
wandoutfile.png PNG 77x77 77x77+0+0 8-bit PseudoClass 11c 1.31KiB 0.000u 0:00.000
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何使用MagickWand减少颜色(不会在此过程中破坏图像?)

谢谢!

Old*_*Pro 1

使用treedepth=8, measure_error=1。有关详细信息,请参阅文档

您还可以考虑使用此处建议的 YIQ 色彩空间。