GetDIBits 関数 (wingdi.h)
GetDIBits 関数は、指定した互換性のあるビットマップのビットを取得し、指定した形式を使用して DIB としてバッファーにコピーします。
構文
int GetDIBits(
[in] HDC hdc,
[in] HBITMAP hbm,
[in] UINT start,
[in] UINT cLines,
[out] LPVOID lpvBits,
[in, out] LPBITMAPINFO lpbmi,
[in] UINT usage
);
パラメーター
[in] hdc
デバイス コンテキストへのハンドル。
[in] hbm
ビットマップへのハンドル。 これは互換性のあるビットマップ (DDB) である必要があります。
[in] start
取得する最初のスキャン行。
[in] cLines
取得するスキャン行の数。
[out] lpvBits
ビットマップ データを受け取るバッファーへのポインター。 このパラメーターが NULL の場合、関数はビットマップの次元と形式を lpbmi パラメーターが指す BITMAPINFO 構造体に渡します。
[in, out] lpbmi
DIB データの目的の形式を指定する BITMAPINFO 構造体へのポインター。
[in] usage
BITMAPINFO 構造体の bmiColors メンバーの形式。 次のいずれかの値を指定する必要があります。
値 | 説明 |
---|---|
|
カラー テーブルは、現在の論理パレットに 16 ビット インデックスの配列で構成されている必要があります。 |
|
カラー テーブルは、リテラルの赤、緑、青 (RGB) の値で構成されている必要があります。 |
戻り値
lpvBits パラメーターが NULL 以外で、関数が成功した場合、戻り値はビットマップからコピーされたスキャン行の数になります。
lpvBits パラメーターが NULL で、GetDIBits が BITMAPINFO 構造体を正常に満たす場合、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。
この関数は、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
1 つ以上の入力パラメーターが無効です。 |
解説
DIB の要求された形式が内部形式と一致する場合、ビットマップの RGB 値がコピーされます。 要求された形式が内部形式と一致しない場合は、カラー テーブルが合成されます。 次の表では、各形式で合成されたカラー テーブルについて説明します。
値 | 説明 |
---|---|
1_BPP | カラー テーブルは、黒と白のエントリで構成されます。 |
4_BPP | カラーテーブルは、標準のVGAパレットと同じ色の組み合わせで構成されています。 |
8_BPP | カラー テーブルは、GDI で定義された 256 色の一般的な組み合わせで構成されます。 (これらの 256 色には、既定の論理パレットに含まれる 20 色が含まれます)。 |
24_BPP | カラー テーブルは返されません。 |
lpvBits パラメーターが有効なポインターである場合は、BITMAPINFOHEADER 構造体の最初の 6 つのメンバーを初期化して、DIB のサイズと形式を指定する必要があります。 スキャン行は、RLE 圧縮ビットマップを除き、 DWORD に配置する必要があります。
ボトムアップ DIB は高さを正の数値に設定し、トップダウン DIB は高さを負の数値に設定して指定します。 ビットマップ カラー テーブルが BITMAPINFO 構造体に追加されます。
lpvBits が NULL の場合、GetDIBits は lpbi が指す最初の構造体の最初のメンバーを調べます。 このメンバーは、 BITMAPCOREHEADER または BITMAPINFOHEADER 構造体のサイズをバイト単位 で 指定する必要があります。 関数は、指定したサイズを使用して、残りのメンバーを初期化する方法を決定します。
lpvBits が NULL で、BITMAPINFO のビット数メンバーが 0 に初期化されている場合、GetDIBits は、カラー テーブルを使用せずに BITMAPINFOHEADER 構造体または BITMAPCOREHEADER を入力します。 この手法は、ビットマップ属性のクエリに使用できます。
アプリケーションがこの関数を呼び出すときに、 hbmp パラメーターで識別されるビットマップをデバイス コンテキストに選択しないでください。
ボトムアップ DIB の原点は、ビットマップの左下隅です。トップダウン DIB の原点は左上隅です。
例
例については、「 イメージのキャプチャ」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wingdi.h (Windows.h を含む) |
Library | Gdi32.lib |
[DLL] | Gdi32.dll |