BITMAPV4HEADER 構造体 (wingdi.h)

BITMAPV4HEADER構造体は、ビットマップ情報ヘッダー ファイルです。 BITMAPINFOHEADER 構造体の拡張バージョンです。

アプリケーションでは、 BITMAPV5HEADER 構造を使用して機能を追加できます。

構文

typedef struct {
  DWORD        bV4Size;
  LONG         bV4Width;
  LONG         bV4Height;
  WORD         bV4Planes;
  WORD         bV4BitCount;
  DWORD        bV4V4Compression;
  DWORD        bV4SizeImage;
  LONG         bV4XPelsPerMeter;
  LONG         bV4YPelsPerMeter;
  DWORD        bV4ClrUsed;
  DWORD        bV4ClrImportant;
  DWORD        bV4RedMask;
  DWORD        bV4GreenMask;
  DWORD        bV4BlueMask;
  DWORD        bV4AlphaMask;
  DWORD        bV4CSType;
  CIEXYZTRIPLE bV4Endpoints;
  DWORD        bV4GammaRed;
  DWORD        bV4GammaGreen;
  DWORD        bV4GammaBlue;
} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;

メンバー

bV4Size

構造体に必要なバイト数。 アプリケーションでは、このメンバーを使用して、使用されているビットマップ情報ヘッダー構造を決定する必要があります。

bV4Width

ビットマップの幅 (ピクセル単位)。

bV4Compression がBI_JPEGまたはBI_PNGの場合、bV4Width は JPEG または PNG イメージの幅をピクセル単位で指定します。

bV4Height

ビットマップの高さ (ピクセル単位)。 bV4Height が正の場合、ビットマップはボトムアップ DIB になり、その原点は左下隅になります。 bV4Height が負の場合、ビットマップはトップダウン DIB になり、原点は左上隅になります。

bV4Height が負の場合、トップダウン DIB を示す bV4Compression は、BI_RGBまたはBI_BITFIELDSである必要があります。 トップダウン DIB は圧縮できません。

bV4Compression がBI_JPEGまたはBI_PNG場合、bV4Height は JPEG または PNG イメージの高さをピクセル単位で指定します。

bV4Planes

ターゲット デバイスの平面の数。 この値は 1 に設定する必要があります。

bV4BitCount

ピクセルあたりのビット数。 BITMAPV4HEADER構造体の bV4BitCount メンバーは、各ピクセルを定義するビット数とビットマップ内の色の最大数を決定します。 このメンバーは、次のいずれかの値である必要があります。

説明
0 ピクセルあたりのビット数が指定されているか、JPEG または PNG ファイル形式によって暗黙的に指定されます。
1 ビットマップはモノクロで、BITMAPINFObmiColors メンバーには 2 つのエントリが含まれています。 ビットマップ配列内の各ビットはピクセルを表します。 ビットが明確な場合、ピクセルは bmiColors テーブルの最初のエントリの色で表示されます。ビットが設定されている場合、ピクセルはテーブル内の 2 番目のエントリの色を持ちます。
4 ビットマップの色は最大 16 色で、BITMAPINFObmiColors メンバーには最大 16 個のエントリが含まれます。 ビットマップ内の各ピクセルは、カラー テーブルの 4 ビット インデックスで表されます。 たとえば、ビットマップの最初のバイトが0x1F場合、バイトは 2 つのピクセルを表します。 最初のピクセルには 2 番目のテーブル エントリの色が含まれており、2 番目のピクセルには 16 番目のテーブル エントリの色が含まれています。
8 ビットマップの色は最大 256 色で、BITMAPINFObmiColors メンバーには最大 256 個のエントリが含まれています。 この場合、配列内の各バイトは 1 つのピクセルを表します。
16 ビットマップの色は最大 2^16 です。 BITMAPV4HEADER構造体の bV4Compression メンバーがBI_RGB場合、BITMAPINFObmiColors メンバーは NULL になります。 ビットマップ配列内の各 WORD は、1 つのピクセルを表します。 赤、緑、青の相対的な強度は、色成分ごとに 5 ビットで表されます。 blue の値は、最下位の 5 ビットの後に、それぞれ緑と赤の 5 ビットです。 最上位ビットは使用されません。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV4HEADERbV4ClrUsed メンバーで指定されたエントリの数を含める必要があります。BITMAPV4HEADERbV4Compression メンバーがBI_BITFIELDS場合、bmiColors メンバーには、各ピクセルの赤、緑、青の各コンポーネントを指定する 3 つの DWORD カラー マスクが含まれます。 ビットマップ配列内の各 WORD は、1 つのピクセルを表します。
24 ビットマップは最大 2^24 色で、BITMAPINFObmiColors メンバーは NULL です。 ビットマップ配列の各 3 バイトトリプレットは、ピクセルの青、緑、赤の相対的な強度を表します。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV4HEADERbV4ClrUsed メンバーで指定されたエントリの数を含める必要があります。
32 ビットマップの色は最大 2^32 です。 BITMAPV4HEADERbV4Compression メンバーがBI_RGB場合、BITMAPINFObmiColors メンバーは NULL になります。 ビットマップ配列内の各 DWORD は、ピクセルの青、緑、赤の相対的な強度を表します。 blue の値は最下位の 8 ビットで、その後に緑と赤にそれぞれ 8 ビットが続きます。 各 DWORD の上位バイトは使用されません。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV4HEADERbV4ClrUsed メンバーで指定されたエントリの数を含める必要があります。BITMAPV4HEADERbV4Compression メンバーがBI_BITFIELDS場合、bmiColors メンバーには、各ピクセルの赤、緑、青の各コンポーネントを指定する 3 つの DWORD カラー マスクが含まれます。 ビットマップ配列内の各 DWORD は、1 つのピクセルを表します。

bV4V4Compression

圧縮されたボトムアップ ビットマップの圧縮の種類 (トップダウン DIB は圧縮できません)。 このメンバーには、次のいずれかの値を指定できます。

説明
BI_RGB 圧縮されていない形式。
BI_RLE8 8 bpp のビットマップの実行長エンコード (RLE) 形式。 圧縮形式は、カウント バイトの後にカラー インデックスを含むバイトで構成される 2 バイト形式です。 詳細については、「 ビットマップ圧縮」を参照してください。
BI_RLE4 4 bpp のビットマップの RLE 形式。 圧縮形式は、カウント バイトとそれに続く 2 つのワード長カラー インデックスで構成される 2 バイト形式です。 詳細については、「 ビットマップ圧縮」を参照してください。
BI_BITFIELDS ビットマップが圧縮されないことを指定します。 メンバー bV4RedMaskbV4GreenMaskおよび bV4BlueMask は、各ピクセルの赤、緑、青のコンポーネントを指定します。 これは、16 および 32 bpp のビットマップで使用する場合に有効です。
BI_JPEG JPEG ファイル交換形式を使用してイメージを圧縮することを指定します。 JPEG圧縮は、圧縮を損失とトレードオフします。それはほとんど顕著な損失で20:1の圧縮比を達成することができます。
BI_PNG PNG ファイル交換形式を使用してイメージを圧縮することを指定します。

bV4SizeImage

イメージのサイズ (バイト単位)。 これは、BI_RGBビットマップの場合は 0 に設定できます。

bV4Compression がBI_JPEGまたはBI_PNGの場合、bV4SizeImage は JPEG または PNG イメージ バッファーのサイズです。

bV4XPelsPerMeter

ビットマップのターゲット デバイスの水平方向の解像度 (ピクセル単位)。 アプリケーションでは、この値を使用して、現在のデバイスの特性に最も一致するリソース グループからビットマップを選択できます。

bV4YPelsPerMeter

ビットマップのターゲット デバイスの垂直方向の解像度 (ピクセル単位)。

bV4ClrUsed

ビットマップで実際に使用されるカラー テーブル内のカラー インデックスの数。 この値が 0 の場合、ビットマップは、bV4Compression で指定された圧縮モードの bV4BitCount メンバーの値に対応する色の最大数を使用します。

bV4ClrUsed が 0 以外で、bV4BitCount メンバーが 16 未満の場合、bV4ClrUsed メンバーはグラフィックス エンジンまたはデバイス ドライバーがアクセスする色の実際の数を指定します。 bV4BitCount が 16 以上の場合、bV4ClrUsed メンバーは、システム カラー パレットのパフォーマンスを最適化するために使用されるカラー テーブルのサイズを指定します。 bV4BitCount が 16 または 32 の場合、最適なカラー パレットはBITMAPV4HEADERの直後から開始されます。

bV4ClrImportant

ビットマップを表示するために必要なカラー インデックスの数。 この値が 0 の場合、すべての色が重要です。

bV4RedMask

各ピクセルの赤の成分を指定するカラー マスク。 bV4Compression が BI_BITFIELDS に設定されている場合にのみ有効です。

bV4GreenMask

各ピクセルの緑のコンポーネントを指定するカラー マスク。 bV4Compression が BI_BITFIELDS に設定されている場合にのみ有効です。

bV4BlueMask

各ピクセルの青成分を指定するカラー マスク。 bV4Compression が BI_BITFIELDS に設定されている場合にのみ有効です。

bV4AlphaMask

各ピクセルのアルファ 成分を指定するカラー マスク。

bV4CSType

DIB の色空間。 次の表に 、bV4CSType の値を示します。

説明
LCS_CALIBRATED_RGB この値は、エンドポイントとガンマ値が適切なフィールドに指定されていることを示します。
 

論理色空間を定義する情報については、 LOGCOLORSPACE 構造体を参照してください。

bV4Endpoints

ビットマップに関連付けられている論理色空間の赤、緑、青の端点に対応する 3 つの色の x、y、z 座標を指定する CIEXYZTRIPLE 構造体。 bV4CSType メンバーがLCS_CALIBRATED_RGBを指定しない限り、このメンバーは無視されます。

メモ色空間は、3 つ以上の座標の観点から数値で色を表すモデルです。 たとえば、RGB 色空間は、赤、緑、青の座標の観点から色を表します。
 

bV4GammaRed

赤のトーン応答曲線。 色の値が調整された RGB 値で 、bV4CSType が LCS_CALIBRATED_RGB に設定されていない限り、このメンバーは無視されます。 符号なし固定 16.16 形式で指定します。 上位 16 ビットは符号なし整数値です。 下位 16 ビットは小数部です。

bV4GammaGreen

緑のトーン応答曲線。 bV4CSType が LCS_CALIBRATED_RGB に設定されている場合に使用されます。 符号なし固定 16.16 形式で指定します。 上位 16 ビットは符号なし整数値です。 下位 16 ビットは小数部です。

bV4GammaBlue

青のトーン応答曲線。 bV4CSType が LCS_CALIBRATED_RGB に設定されている場合に使用されます。 符号なし固定 16.16 形式で指定します。 上位 16 ビットは符号なし整数値です。 下位 16 ビットは小数部です。

解説

BITMAPV4HEADER構造体が拡張され、JPEG または PNG イメージをソース イメージとして StretchDIBits に渡すことができます。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header wingdi.h (Windows.h を含む)

関連項目

BITMAPINFO

BITMAPINFOHEADER

BITMAPV5HEADER

ビットマップ構造

ビットマップの概要

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits