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