2006 年 1 月 21 日 22 時 58 分

カラーテーブル(パレット)


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


これまでの内容で、16, 24, 32 ビットの BMP は
作成できるようになったと思うので、
今日は、それ以下のビット数を持つ BMP について書く。

BMP には、ピクセルあたりのビット数がさらに小さい、
1, 4, 8 の値を取る形式もある。
しかし、8 や 4 はともかく、1 ビットでは、
表現できる範囲が少なすぎて、色の表現には無理がある。

そこで、これらでは色その物を直接表現せず、
カラーテーブルを参照する方法を使う。

カラーテーブルとは、画材のパレットのようなものだ。
1 ビットの BMP なら、0~1 番の 2 色、
4 ビットなら、0~3 番の 4 色、
8 ビットなら、0~255 番の 256 色用の区画を持っている。

各区画には、自由に色を定義することができる。
色は、RGB それぞれ 8 ビット使って表現されるので、
色の表現力は悪くない。

各ピクセルは、色を直接表現せずに、
カラーテーブルの区画の番号で表現する。
つまり、今までと違い、同時に使える色に制約がある。

これらの種類の BMP の場合、カラーテーブルは、
ヘッダ情報として BITMAPINFOHEADER の後に追加される。

カラーテーブルは、純粋に色を並べただけの構造。
色は、以下の形式を持つ、32 ビット数値である。

00000000rrrrrrrrggggggggbbbbbbbb

値はリトルエンディアンで格納される。
8 ビットの BMP の場合、32 ビット数値が 256 個並ぶ訳だ。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.