BMPファイルのバイナリ構造の解説。
BMPファイルのバイナリ構造は、データの先頭から順に以下のような構成要素を持つ。
このうち、ビットフィールドとカラーパレットについては情報ヘッダの内容次第で存在しないことがある。
また、イメージデータは情報ヘッダの内容によって形式が大きく変わる。
なお、BMPバイナリ中にある2バイト及び4バイトの整数値データのバイトオーダはリトルエンディアンであり、符号付き整数値の場合は最上位ビットを符号ビットとする2の補数表現を用いる。
Windows環境しか考慮しないのであればバイトオーダを気にする必要はないが、プラットフォームに依存しないコードを記述する際には留意すること。
ファイルヘッダはBMPファイルのバイナリ構造において最初に現れる必要があり、以下の構成要素を持つ。
要素 | バイト数 |
---|---|
ファイルタイプ | 2 |
ファイルサイズ | 4 |
予約1 | 2 |
予約2 | 2 |
イメージデータオフセット | 4 |
以下に各構成要素の詳細を述べる。
'B'
、2バイト目が 'M'
となる。0
を格納しても構わない。0
を格納するべきである。0
を格納しても構わない。0
以外であった場合は信用するべきである。Win32 SDK環境では、これらの構成を定義した BITMAPFILEHEADER
構造体が存在する。
1
2
3
4
5
6
7
8
9
| - | | | | | ! |
|