<>メモ
2026 ワード
ビットマップファイルは、ファイルヘッダ+ビットマップ情報+ビットマップピクセルデータの3つの部分から構成されています.
ビットマップファイルヘッダ.ビットマップファイルヘッダは、主にビットマップファイルを識別するために使用されます.以下は、ビットマップファイルヘッダ構造の定義です.
このbfTypeの値は「BM」(0 x 4 d 42)であり、ビットマップファイルであることを示す.bfSizeの値はビットマップファイルのサイズです.
ビットマップ情報に記録された値は、メモリの割り当て、パレット情報の設定、画素値の読み出しなどに用いられる.以下は、ビットマップ情報構造の定義です.
可視ビットマップ情報も、ビットマップ情報ヘッダ+カラーテーブルの2つの部分から構成されています.
カラーテーブルはカラーテーブル項目からなり、カラーテーブル項目構造の定義は以下の通りである:
ビットマップ情報ヘッダは、単一画素で使用されるバイト数と、色を記述するフォーマットとを含み、ビットマップの幅、高さ、ターゲットデバイスのビット平面数、画像の圧縮フォーマットも含む.以下は、ビットマップ情報ヘッダ構造の定義です.
次の表は、構造体の各メンバーの説明です.
構造メンバー
説明
biSize
構造BITMAPINFOHEADERのバイト数、すなわちsizeof(BITMAPINFOHEADER)*
biWidth
ピクセル単位の画像幅*
biHeight
ピクセル単位の画像長*
biplanes
ターゲットデバイスのビットプレーン数
biBitCount
各ピクセルのビット数*(1)
biCompression
画像の圧縮フォーマット(この値はほぼ常に0)
biSizeImage
バイト単位の画像データのサイズ(BI_RGB圧縮方式)
biXPelsPermeter
水平方向の1メートルあたりの画素数
biYpelsPerMeter
垂直方向の1メートルあたりのピクセル数
biClrused
パレットで実際に使用されている色の数(2)
biClrImportant
現実ビットマップに必要な色数(3)
説明:*は、ビットマップ操作でよく参照される変数であるため、注意が必要な部分です.
ビットマップファイルヘッダ.ビットマップファイルヘッダは、主にビットマップファイルを識別するために使用されます.以下は、ビットマップファイルヘッダ構造の定義です.
typedef struct tagBITMAPFILEHEADER { // bmfh
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
このbfTypeの値は「BM」(0 x 4 d 42)であり、ビットマップファイルであることを示す.bfSizeの値はビットマップファイルのサイズです.
ビットマップ情報に記録された値は、メモリの割り当て、パレット情報の設定、画素値の読み出しなどに用いられる.以下は、ビットマップ情報構造の定義です.
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1];
} BITMAPINFO;
可視ビットマップ情報も、ビットマップ情報ヘッダ+カラーテーブルの2つの部分から構成されています.
カラーテーブルはカラーテーブル項目からなり、カラーテーブル項目構造の定義は以下の通りである:
typedef struct tagRGBQUAD { // rgbq
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;
ここで注意すべき問題は、RGBQUAD構造における色順序が通常のRGBではなくBGRであることである.ビットマップ情報ヘッダは、単一画素で使用されるバイト数と、色を記述するフォーマットとを含み、ビットマップの幅、高さ、ターゲットデバイスのビット平面数、画像の圧縮フォーマットも含む.以下は、ビットマップ情報ヘッダ構造の定義です.
typedef struct tagBITMAPINFOHEADER{ // bmih
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
次の表は、構造体の各メンバーの説明です.
構造メンバー
説明
biSize
構造BITMAPINFOHEADERのバイト数、すなわちsizeof(BITMAPINFOHEADER)*
biWidth
ピクセル単位の画像幅*
biHeight
ピクセル単位の画像長*
biplanes
ターゲットデバイスのビットプレーン数
biBitCount
各ピクセルのビット数*(1)
biCompression
画像の圧縮フォーマット(この値はほぼ常に0)
biSizeImage
バイト単位の画像データのサイズ(BI_RGB圧縮方式)
biXPelsPermeter
水平方向の1メートルあたりの画素数
biYpelsPerMeter
垂直方向の1メートルあたりのピクセル数
biClrused
パレットで実際に使用されている色の数(2)
biClrImportant
現実ビットマップに必要な色数(3)
説明:*は、ビットマップ操作でよく参照される変数であるため、注意が必要な部分です.