次の方法で共有


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

参照

参照

CBitmap::CreateBitmapIndirect

その他の技術情報

構造体、スタイル、コールバック関数とメッセージ マップ