BITMAP 構造体
更新 : 2007 年 11 月
BITMAP 構造体は、論理ビットマップの高さ、幅、カラー フォーマット、およびビット値を定義します。
typedef struct tagBITMAP { /* bm */
int bmType;
int bmWidth;
int bmHeight;
int bmWidthBytes;
BYTE bmPlanes;
BYTE bmBitsPixel;
LPVOID bmBits;
} BITMAP;
パラメータ
bmType
ビットマップのタイプを指定します。論理ビットマップでは、このメンバは 0 にします。bmWidth
ビットマップの幅をピクセル単位で指定します。幅は 1 以上にします。bmHeight
ビットマップの高さをラスタ行数で指定します。高さは 1 以上にします。bmWidthBytes
ラスタ行ごとのバイト数を指定します。この値は、グラフィックス デバイス インターフェイス (GDI Graphics Device Interface) がビットマップのビット値が整数値 (2 バイト) の配列であると仮定しているため、偶数値にする必要があります。つまり、bmWidthBytes * 8 の値は bmWidth メンバと bmBitsPixel メンバの積の値以上でその積に最も近い 16 の倍数にします。bmPlanes
ビットマップのカラー プレーンの数を指定します。bmBitsPixel
1 ピクセルを定義するのに必要な、各プレーン上の隣接したカラー ビットの数を指定します。bmBits
ビットマップのビット値の位置を指します。bmBits メンバはバイト値の配列への long ポインタにする必要があります。
解説
現在使われているビットマップの形式はモノクロとカラーです。モノクロのビットマップは、1 ビット、1 プレーンの形式を使います。各スキャンは 16 ビットの倍数です。
高さ n のモノクロのビットマップでは、各スキャンは次のように構成されます。
Scan 0
Scan 1
.
.
.
Scan n-2
Scan n-1
モノクロ デバイスのピクセルは黒か白のどちらかです。ビットマップの対応するビットが 1 のとき、ピクセルは ON (白) になります。ビットマップの対応するビットが 0 のとき、ピクセルは OFF (黒) になります。
ビットマップをサポートするすべてのデバイスは、CDC::GetDeviceCaps メンバ関数の RASTERCAPS インデックスに RC_BITBLT ビットが設定されます。
各デバイスは独自の重複しないカラー フォーマットを持っています。ビットマップをデバイス間で転送するには、GetDIBits Windows 関数および SetDIBits Windows 関数を使用します。
必要条件
ヘッダー : wingdi.h