Previous: 2.4.6.2. ヘッダの構造 |
Up: 2.4.6. BMPファイルの表示 |
Next: 2.4.6.4. 情報ヘッダ |
ファイルヘッダの構造は表 6?21のようになっています。
表 6?21 BMPファイルのファイルヘッダの構造
バイト数 |
データの項目 |
構造体メンバ名 |
内容 |
2 |
ファイルタイプ |
WORD? bfType |
BMPファイルであることを示す。1バイト目は 「B (0x42)」、2バイト目は 「M (0x4D)」 |
4 |
ファイルサイズ |
DWORD bfSize |
BMPファイル全体のファイルサイズ。 |
2 |
予約 |
WORD? bfReserved1 |
予約値。0とする。 |
2 |
予約 |
WORD? bfReserved2 |
予約値。0とする。 |
4 |
イメージデータオフセット |
DWORD bfOffBits |
ファイルの先頭から何バイト目からビットマップデータがはじまるかをします |
Windowsプログラミングの環境(Win32 SDK)の場合、用意されているインクルードファイルで、ファイルヘッダがBITMAPFILEHEADER構造体として定義されていて、表 6?21の構造体メンバ名が付けられています。本書でもこの定義を利用してプログラミングすることにします。Win32環境ではLONGは32ビット符号付き整数、WORDは16ビット符号無し整数、DWORDは32ビット符号無し整数を意味します。
BMPヘッダ内の数値はすべてリトルエンディアンですので、上位の桁のバイトが右側から格納されます。たとえば「36 C0 00 00」は0x00 00 0C 36を意味します。
ファイルタイプを利用すると、ファイルを開いたあとに、開いたファイルが本当にBMPファイルかどうかを確認できます。イメージデータオフセットを利用すると、ビットマップデータの実際のデータ位置を確認できますから、データの読み出しが簡単になります。
図 6?71 flat.bmpのヘッダ部分
***flatbmpheader***
サンプルプログラムのフォルダに入っている「flat.bmp」をバイナリエディタで見ると(図 6?71)、ファイルヘッダ部分の内容を確認できます。意味は以下の通りです。
データの項目 |
データ内容 |
意味 |
ファイルタイプ |
42 4D |
BMPファイル |
ファイルサイズ |
36 C0 00 00 |
49206バイト |
予約 |
00 00 |
- |
予約 |
00 00 |
- |
イメージデータオフセット |
36 00 00 00 |
54バイト |
Previous: 2.4.6.2. ヘッダの構造 |
Up: 2.4.6. BMPファイルの表示 |
Next: 2.4.6.4. 情報ヘッダ |