BITMAP 構造体
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