У меня есть несколько изображений, которые я обрабатываю с помощью ImageMagick. В этом случае я конвертирую PNG RGBA в индексированный 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 (не разрушая изображение в процессе?)
Спасибо!