イメージに適用する「単純な」カラーリダクションを調べ始めます。私は最後の日にこの仕組みを研究し、ここで実験するためのまともなアルゴリズムであると思われるものを見つけました:Median cut algorithmメディアンカットカラー縮小アルゴリズムの出力パレットをソースイメージに適用する
出力はn色のパレットです。私はまだこのアルゴリズムが実際に動作することを確認する必要がありますが、私はそれを仮定しています。私がしたいのは、その出力を取り出し、それをパレットが生成されたイメージに適用することです。
画像には色の圧縮形式や深い知識があるとは言えませんが、どのように画像フォーマットで始めなくてもパレットを適用できるのでしょうか?インデックス付きパレット(GIF)を使用します。
私は、各ピクセルについて、現在のピクセルの色とパレットの各色の差を計算し、そのピクセルを最小の差のパレット色で置き換えることを考えています。これはアプローチするための実行可能な方法でしょうか?
注 - 私はさまざまなライブラリ(ImageMagick)を調べましたが、これらはやや不満のようです。私が画像操作でやっていることのほとんどは、カラーパレットを減らすことになります。これ以上の複雑さはありません。だから私はこのアルゴリズムを実装することが私のニーズにとって最も簡単なアプローチになると思っています。
- このアルゴリズムは、Qtのに完全に統合され、素晴らしい作品。それを動作させるにはゼロの変更が必要です。 – giraffee
Median Cutでプレイしたい場合は、既存の実装を微調整することができます:https://github.com/pornel/improved-pngquant/(それは速い再マッピングとPNGサポートを持っています) – Kornel