BITMAPV5HEADER構造体 (wingdi.h)

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

構文

typedef struct {
  DWORD        bV5Size;
  LONG         bV5Width;
  LONG         bV5Height;
  WORD         bV5Planes;
  WORD         bV5BitCount;
  DWORD        bV5Compression;
  DWORD        bV5SizeImage;
  LONG         bV5XPelsPerMeter;
  LONG         bV5YPelsPerMeter;
  DWORD        bV5ClrUsed;
  DWORD        bV5ClrImportant;
  DWORD        bV5RedMask;
  DWORD        bV5GreenMask;
  DWORD        bV5BlueMask;
  DWORD        bV5AlphaMask;
  DWORD        bV5CSType;
  CIEXYZTRIPLE bV5Endpoints;
  DWORD        bV5GammaRed;
  DWORD        bV5GammaGreen;
  DWORD        bV5GammaBlue;
  DWORD        bV5Intent;
  DWORD        bV5ProfileData;
  DWORD        bV5ProfileSize;
  DWORD        bV5Reserved;
} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;

メンバー

bV5Size

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

bV5Width

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

bV5Compression がBI_JPEGまたはBI_PNG場合、bV5Width メンバーは圧縮解除された JPEG または PNG イメージの幅をピクセル単位で指定します。

bV5Height

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

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

bV5Compression がBI_JPEGまたはBI_PNG場合、bV5Height メンバーは圧縮解除された JPEG または PNG イメージの高さをピクセル単位で指定します。

bV5Planes

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

bV5BitCount

各ピクセルを定義するビット数と、ビットマップ内の色の最大数。

このメンバーには、次のいずれかの値を指定できます。

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

bV5Compression メンバーがBI_BITFIELDS場合、各 DWORD マスクに設定されるビットは連続している必要があり、別のマスクのビットと重複しないようにする必要があります。 ピクセル内のすべてのビットを使用する必要はありません。

24 ビットマップは最大 2^24 色で、BITMAPINFObmiColors メンバーは NULL です。 ビットマップ配列の各 3 バイトのトリプレットは、ピクセルの青、緑、赤の相対的な強度を表します。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV5HEADER構造体の bV5ClrUsed メンバーによって指定されたエントリの数を含める必要があります。
32 ビットマップの色は最大 2^32 です。 BITMAPV5HEADERbV5Compression メンバーがBI_RGB場合、BITMAPINFObmiColors メンバーは NULL になります。 ビットマップ配列の各 DWORD は、ピクセルの青、緑、赤の相対的な強度を表します。 blue の値は、最下位の 8 ビットで、その後に緑と赤のそれぞれ 8 ビットが続きます。 各 DWORD の上位バイトは使用されません。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV5HEADERbV5ClrUsed メンバーによって指定されたエントリの数を含める必要があります。BITMAPV5HEADERbV5Compression メンバーがBI_BITFIELDS場合、bmiColors メンバーには、各ピクセルの赤、緑、青の各コンポーネントを指定する 3 つの DWORD カラー マスクが含まれます。 ビットマップ配列内の各 DWORD は、1 つのピクセルを表します。

bV5Compression

ビットマップが圧縮されないことを指定します。 bV5RedMaskbV5GreenMask、および bV5BlueMask メンバーは、各ピクセルの赤、緑、青の各コンポーネントを指定します。 これは、16 および 32 bpp のビットマップで使用する場合に有効です。 このメンバーには、次のいずれかの値を指定できます。

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

bV5SizeImage

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

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

bV5XPelsPerMeter

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

bV5YPelsPerMeter

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

bV5ClrUsed

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

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

bV5ClrImportant

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

bV5RedMask

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

bV5GreenMask

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

bV5BlueMask

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

bV5AlphaMask

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

bV5CSType

DIB の色空間。

次の表では、 bV5CSType の値を指定します。

説明
LCS_CALIBRATED_RGB この値は、エンドポイントとガンマ値が適切なフィールドに指定されることを意味します。
LCS_sRGB ビットマップが sRGB 色空間にあることを指定します。
LCS_WINDOWS_COLOR_SPACE この値は、ビットマップがシステムの既定の色空間 sRGB にあることを示します。
PROFILE_LINKED この値は、 bV5ProfileData が使用するプロファイルのファイル名を指していることを示します (ガンマ値とエンドポイント値は無視されます)。
PROFILE_EMBEDDED この値は、 bV5ProfileData が使用するプロファイルを含むメモリ バッファーを指していることを示します (ガンマ値とエンドポイント値は無視されます)。
 

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

bV5Endpoints

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

bV5GammaRed

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

bV5GammaGreen

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

bV5GammaBlue

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

bV5Intent

ビットマップのレンダリング 意図。 次のいずれかの値を指定できます。

Intent ICC 名 説明
LCS_GM_ABS_COLORIMETRIC 一致する 絶対比色 白い点を維持します。 色を宛先の色域で最も近い色に一致させます。
LCS_GM_BUSINESS Graphic [鮮やかさ] 彩度を維持します。 ビジネス チャートや、色が必要なその他の状況に使用されます。
LCS_GM_GRAPHICS 実証 相対比色 比色一致を維持します。 グラフィック デザインと名前付き色に使用されます。
LCS_GM_IMAGES Picture 知覚 コントラストを維持します。 写真や自然な画像に使用されます。

bV5ProfileData

BITMAPV5HEADER構造体の先頭からプロファイル データの先頭までのオフセット (バイト単位)。 プロファイルが埋め込まれている場合、プロファイル データは実際のプロファイルであり、リンクされます。 (プロファイル データは、プロファイルの null で終わるファイル名です)。Unicode 文字列にすることはできません。 Windows 文字セットの文字のみで構成する必要があります (コード ページ 1252)。 bV5CSType メンバーがPROFILE_LINKEDまたはPROFILE_EMBEDDEDを指定しない限り、これらのプロファイル メンバーは無視されます。

bV5ProfileSize

埋め込みプロファイル データのサイズ (バイト単位)。

bV5Reserved

このメンバーは予約されています。 その値は 0 に設定する必要があります。

解説

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

独立カラー管理インターフェイス (ICM) 2.0 を使用すると、INTERNATIONAL Color Consortium (ICC) カラー プロファイルを DIB (DIB) にリンクまたは埋め込みできます。 詳細については、「 構造の使用 」を参照してください。

DIB がメモリに読み込まれると、プロファイル データ (存在する場合) はカラー テーブルに従う必要があります。 bV5ProfileData は、 BITMAPV5HEADER 構造体の先頭からのプロファイル データのオフセットを提供する必要があります。 bV5ProfileData に格納されている値は、BITMAPV5HEADER引数を指定した sizeof 演算子によって返される値とは異なります。bV5ProfileData は、BITMAPV5HEADER構造体の先頭からプロファイル データの先頭までのオフセット (バイト単位) であるためです。 (ビットマップ ビットはメモリ内のカラー テーブルに従いません)。 DIB をメモリに読み込む後、アプリケーションで bV5ProfileData メンバーを変更する必要があります。

パックされた DIB の場合、プロファイル データは、ファイル形式と同様のビットマップ ビットに従う必要があります。 bV5ProfileData メンバーは、BITMAPV5HEADERの先頭からのプロファイル データのオフセットを引き続き指定する必要があります。

アプリケーションは、bV5Size がBITMAPV5HEADERのサイズと等しく、bV5CSTypePROFILE_EMBEDDEDまたはPROFILE_LINKEDと等しい場合にのみ、プロファイル データにアクセスする必要があります。

プロファイルがリンクされている場合、プロファイルのパスには、 CreateFile 関数を使用して開くことができる完全修飾名 (ネットワーク パスを含む) を指定できます。

要件

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

関連項目

BITMAPINFO

BITMAPINFOHEADER

BITMAPV4HEADER

ビットマップ構造

ビットマップの概要

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits