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 | ビットマップはモノクロで、BITMAPINFO の bmiColors メンバーには 2 つのエントリが含まれています。 ビットマップ配列内の各ビットはピクセルを表します。 ビットがクリアの場合、 ピクセルは bmiColors カラー テーブルの最初のエントリの色で表示されます。 ビットが設定されている場合、ピクセルはテーブル内の 2 番目のエントリの色を持っています。 |
4 | ビットマップの色は最大 16 色で、BITMAPINFO の bmiColors メンバーには最大 16 個のエントリが含まれます。 ビットマップ内の各ピクセルは、カラー テーブルの 4 ビット インデックスで表されます。 たとえば、ビットマップの最初のバイトが0x1F場合、バイトは 2 つのピクセルを表します。 1 番目のピクセルには 2 番目のテーブル エントリの色が含まれており、2 番目のピクセルには 16 番目のテーブル エントリの色が含まれています。 |
8 | ビットマップの色は最大 256 色で、BITMAPINFO の bmiColors メンバーには最大 256 個のエントリが含まれています。 この場合、配列内の各バイトは 1 ピクセルを表します。 |
16 | ビットマップの色は最大 2^16 です。
BITMAPV5HEADER構造体の bV5Compression メンバーがBI_RGB場合、BITMAPINFO の bmiColors メンバーは NULL になります。 ビットマップ配列内の各 WORD は、1 つのピクセルを表します。 赤、緑、青の相対強度は、色成分ごとに 5 ビットで表されます。 blue の値は、最下位の 5 ビットで、その後に緑と赤にそれぞれ 5 ビットが続きます。 最上位ビットは使用されません。
bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV5HEADERの bV5ClrUsed メンバーによって指定されたエントリの数を含める必要があります。BITMAPV5HEADERの bV5Compression メンバーがBI_BITFIELDS場合、bmiColors メンバーには、各ピクセルの赤、緑、青の各コンポーネントを指定する 3 つの DWORD カラー マスクが含まれます。 ビットマップ配列内の各 WORD は、1 つのピクセルを表します。
bV5Compression メンバーがBI_BITFIELDS場合、各 DWORD マスクに設定されるビットは連続している必要があり、別のマスクのビットと重複しないようにする必要があります。 ピクセル内のすべてのビットを使用する必要はありません。 |
24 | ビットマップは最大 2^24 色で、BITMAPINFO の bmiColors メンバーは NULL です。 ビットマップ配列の各 3 バイトのトリプレットは、ピクセルの青、緑、赤の相対的な強度を表します。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV5HEADER構造体の bV5ClrUsed メンバーによって指定されたエントリの数を含める必要があります。 |
32 | ビットマップの色は最大 2^32 です。 BITMAPV5HEADERの bV5Compression メンバーがBI_RGB場合、BITMAPINFO の bmiColors メンバーは NULL になります。 ビットマップ配列の各 DWORD は、ピクセルの青、緑、赤の相対的な強度を表します。 blue の値は、最下位の 8 ビットで、その後に緑と赤のそれぞれ 8 ビットが続きます。 各 DWORD の上位バイトは使用されません。 bmiColors カラー テーブルは、パレット ベースのデバイスで使用される色を最適化するために使用され、BITMAPV5HEADERの bV5ClrUsed メンバーによって指定されたエントリの数を含める必要があります。BITMAPV5HEADERの bV5Compression メンバーがBI_BITFIELDS場合、bmiColors メンバーには、各ピクセルの赤、緑、青の各コンポーネントを指定する 3 つの DWORD カラー マスクが含まれます。 ビットマップ配列内の各 DWORD は、1 つのピクセルを表します。 |
bV5Compression
ビットマップが圧縮されないことを指定します。 bV5RedMask、bV5GreenMask、および 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のサイズと等しく、bV5CSType がPROFILE_EMBEDDEDまたはPROFILE_LINKEDと等しい場合にのみ、プロファイル データにアクセスする必要があります。
プロファイルがリンクされている場合、プロファイルのパスには、 CreateFile 関数を使用して開くことができる完全修飾名 (ネットワーク パスを含む) を指定できます。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | wingdi.h (Windows.h を含む) |