フルカラー(約1670万色)で表現された画像を4096色に美しく減色できる方法・ツールなどを教えてください。

4096色というのは、RGB24bitカラーのうち、16進数で下の位が0になる値を指します。つまり#*0*0*0(*は0~Fの値)の色となります。
Photoshopや減色ツールなどでは、パレットカラーを256色しか持つことが出来ず、4096色への減色が出来ませんでした。それとも、私が知らないだけで実は出来たりするのでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2006/05/10 11:55:30
  • 終了:2006/05/10 15:59:17

ベストアンサー

id:i_kumagoro No.1

i_kumagoro回答回数170ベストアンサー獲得回数582006/05/10 14:01:25

ポイント100pt

#RRGGBB のR,G,Bで1桁目と2桁目を同じ数字になると思います(さもなくば白が白にならない)が、それは置いておきます。

ImageMagickのconvertコマンドを使用すれば任意の色数への減色が可能です。コンソール(ターミナル、コマンドプロンプト)から

convert source.fine -dither -map color4096.png dest.file

の様にして使います。

source.fileは変換元のファイル名

dest.fileは変換先のファイル名

color4096.png は減色時に使用するカラーを含んだ画像で、今回の場合は、ここに4096色使った画像を指定します。

その様な画像が用意できない場合はこっちに用意したものをお使い下さい。

もしくは、ViXの様な16色モノクロに減色できるツールがあれば、

  1. photoshop上からRGBのチャンネルごとにグレイスケールの画像で保存。
  2. それぞれ16色モノクロに減色。
  3. photoshop上で再度カラー画像に合成。

でも、かなり面倒ですが可能だとは思います。

id:clean_view

1桁目と2桁目は同じ数字でなくて、2桁目が0の色に限定されます。しかし、この4096色のパレットは、リンクしていただいたものと同じように、64x64のサイズでこちらで持っていたので、問題ありませんでした。結果的に、ImageMagickで、私の質問の内容のとおり、減色できました。また、Photoshopで、RGBそれぞれ16色モノクロ分解してやるのも、アクションを組んでみたりしてトライしてみました。こちらは#*0*0*0の色の制限にすることは出来ませんでしたが、減色は出来ました。現時点では、完璧なご回答だったと思います。いろいろ世界が拓けました。ありがとうございました!

2006/05/10 15:57:48
  • id:i_kumagoro
    解決して何よりです。

    既にされている事でしたら蛇足になってしまいますが、4096色のパレットがおっしゃるように#*0*0*0になっているという事でしたら、減色前にレベル補正をかけた方が良い結果が得られると思います。

    回答でも少し触れましたが、おっしゃるようなパレットでは最も明るい色が#F0F0F0になってしまい、元の画像にこれより上のレベルの階調で表現されている部分が減色時に白飛びしてしまいます。

    具体的にはレベル補正で出力レベルを0-240にせばめる事で、理論上は減色時の白飛びがなくなります。

    RGBに分解する方法も、理論上は(こればっかりですみません)最後に出力レベルを0-240にする事で#*0*0*0のパレットに入るはずです。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません