BITMAPINFO 構造体 (wingdi.h)

BITMAPINFO 構造体は、DIB のサイズと色の情報を定義します。

構文

C++

typedef struct tagBITMAPINFO {
  BITMAPINFOHEADER bmiHeader;
  RGBQUAD          bmiColors[1];
} BITMAPINFO, *LPBITMAPINFO, *PBITMAPINFO;

メンバ

bmiHeader

色書式のサイズに関する情報を含む BITMAPINFOHEADER 構造体。

bmiColors[1]

bmiColors メンバには、次のいずれかが含まれています。

  • RGBQUAD の配列。カラー テーブルを構成する配列の要素。
  • 現在実現されている論理パレットへのインデックスを指定する 16 ビット符号なし整数の配列。この bmiColors の使用は、DIB を使用する関数で許可されています。bmiColors 要素に実現された論理パレットへのインデックスが含まれている場合は、次のビットマップ関数も呼び出す必要があります。

    CreateDIBitmap

    CreateDIBPatternBrush

    CreateDIBSection

    CreateDIBSectionusage パラメータを DIB_PAL_COLORS に設定する必要があります。

配列内のエントリの数は、BITTMAPINFOHEADER 構造体の biBitCount メンバと biClrUsed メンバの値によって異なります。

bmiColors テーブルの色は、重要度の高い順に表示されます。詳細については、解説 セクションを参照してください。

解説

DIB は、ビットマップのサイズと色を記述する BITMAPINFO 構造体と、ビットマップのピクセルを定義するバイト配列の 2 つの異なる部分で構成されます。配列内のビットは一緒にパックされますが、LONG データ型境界で終了するには、各スキャン ラインにゼロを埋め込む必要があります。ビットマップの高さが正の場合、ビットマップはボトムアップ DIB で、原点は左下隅になります。高さが負の場合、ビットマップはトップダウン DIB で、原点は左上隅になります。

ビットマップ配列が BITMAPINFO ヘッダーの直後にある場合、ビットマップはパックされます。パックされたビットマップは、1 つのポインターによって参照されます。パックビットマップの場合、DIB ビットマップ配列が DWORD 境界で開始されるように、DIB_PAL_COLORS モードを使用するときに biClrUsed メンバを偶数に設定する必要があります。

注意

ビットマップをファイルに格納する場合、または別のアプリケーションに転送する場合は、bmiColors メンバにパレットインデックスを含めないでください。

アプリケーションがビットマップを排他的に使用および制御していない限り、ビットマップカラーテーブルには明示的な RGB 値が含まれている必要があります。

必要条件

ヘッダ: wingdi.h ( Windows.h を含む )