オフセット | 内容(バイト数) |
---|---|
0 | カラーマップエントリ番号(4) 0-(ncolors - 1) |
4 | 赤の値(2) 0-65535 |
6 | 緑の値(2) 0-65535 |
8 | 青の値(2) 0-65535 |
10 | 表示色のビットマスク(1) 7 |
11 | パディング(1) 0 |
: | : |
カラーマップの内容を保存したブロックで、ビジュアルクラスがGrayScale・PseudoColor・DirectColorの場合に存在し、StaticGray・StaticColor・TrueColorの場合はありません。
カラーマップのエントリ番号を表すデータです。 カラーマップエントリは必ずしもエントリ番号順に並んでいる必要はありません。 カラーマップのエントリ数はncolorsであり、カラーマップの総エントリ数colormap_entriesより少ない場合もあります。 カラーマップブロック全体のサイズは12×ncolorsバイトとなります。
カラーマップの赤(red)・緑(green)・青(blue)の値で、それぞれの最大輝度が65535(=216-1)になるように正規化されています。 GrayScaleの場合も赤・緑・青の値があり、それらが全て同じ値になります。 このため、事実上、GrayScaleとPseudoColorは同じ構成となります。 現在のディスプレイのカラーマップは最大でも8ビットなので、16ビットあっても実際の輝度は256階調しかありません。
赤・緑・青の値のうち、実際に表示する色成分のビットマスクを下位3ビットで定義した値で、通常は全ての色を表示するため 0000 0111=7となります。 しかし、実際にはこのデータは無視されることが多いようです。
カラーマップエントリのバイト数を4バイトの倍数にするためのパディングバイトで、通常は0が入っています。
フレームバッファの内容を保存したブロックで、ディスプレイ上の画像の一番上の行から下へ1行単位で保存されます。 行中のピクセルは左端から順に保存され、各行はスキャンラインのパディング数bitmap_padの倍数になるように、行の末尾に値0のデータがパディングされます。 各行のバイト数はスキャンラインあたりのバイト数bytes_per_lineになりますから、ビットマップイメージデータブロックのサイズは、
となります。
ビットマップイメージデータの配列は、イメージ形式pixmap_format、バイトの順番byte_order、ビットマップユニットbitmap_unit、ビットの順番bitmap_bit_order、スキャンラインのパディング数bitmap_pad、ピクセルあたりのビット数bits_per_pixelによって様々ですが、次のようなものが代表例です。
ビット | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | ワ | ド |
第1バイト目 | ||||||||
P8 | P9 | P10 | P11 | P12 | P13 | P14 | P15 | |
第2バイト目 | ||||||||
P16 | P17 | P18 | P19 | P20 | P21 | P22 | P23 | |
第3バイト目 | ||||||||
P24 | P25 | P26 | P27 | P28 | P29 | P30 | P31 | |
第4バイト目 | ||||||||
: | : |
ビット | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
P0 | P1 | ワ | ド | ||||||
第1バイト目 | ||||||||
P2 | P3 | |||||||
第2バイト目 | ||||||||
P4 | P5 | |||||||
第3バイト目 | ||||||||
P6 | P7 | |||||||
第4バイト目 | ||||||||
: | : |
ビット | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
P0 | ワ | ド | |||||||
第1バイト目 | ||||||||
P1 | ||||||||
第2バイト目 | ||||||||
P2 | ||||||||
第3バイト目 | ||||||||
P3 | ||||||||
第4バイト目 | ||||||||
: | : |
ビット | ||||||||
---|---|---|---|---|---|---|---|---|
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
R0 | R1 | R2 | R3 | R4 | R5 | R6 | R7 | ワ | ド |
第1バイト目 | ||||||||
G0 | G1 | G2 | G3 | G4 | G5 | G6 | G7 | |
第2バイト目 | ||||||||
B0 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | |
第3バイト目 | ||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |
第4バイト目 | ||||||||
: | : |