"MagickWand中的“-colors”选项等同于什么?"

7

我有几张图片需要使用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实现颜色减少(而不破坏图像吗?)

谢谢!


不,我将转换调用封装在一个好的类中,然后继续了生活。 - Troy J. Farrell
1个回答

1

请使用 treedepth=8, measure_error=1。详见文档

您也可以考虑使用建议的 YIQ 色彩空间,详情请参见此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接