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 を使用して色を減らす方法を知っている人はいますか (その過程で画像を破壊することなく)。

ありがとう!

4

1 に答える 1

1

を使用しtreedepth=8, measure_error=1ます。詳細については、ドキュメントを参照してください

ここで提案されているように、YIQ 色空間の使用を検討することもできます。

于 2012-05-23T00:34:55.000 に答える