sRGB: 標準色空間
インターネット帯域幅に関する考慮事項の結果として、Hewlett-Packardと Microsoft は、データオーバーヘッドがほとんどない正確なカラー マッピングを可能にするために、sRGB (IEC 61966-2-1) と呼ばれる標準の定義済みの色空間を採用することを提案しました。
sRGB の技術的な詳細を説明するホワイト ペーパーのヘルプ ファイル バージョン sRGB.hlp は、WCS 1.0 プログラマー リファレンスの \Help フォルダーにあります。
異なるファイル形式では、イメージが sRGB 色空間にあることを指定するために、フラグを使用または追加できます。 Windows デバイスに依存しないビットマップ (DIB) 形式では、BITMAPV5HEADER 構造体の bV5CSType メンバーを LCS_sRGB に設定すると、DIB の色が sRGB 色空間にあることを指定します。
WCS 1.0 では、sRGB のネイティブ サポートが提供されます。 sRGB 色空間で定義されたイメージをレンダリングするために WCS 1.0 を使用するには、次の 2 つの方法があります。
デバイス コンテキスト内でイメージをレンダリングするには
- ディスプレイ デバイスにデバイス コンテキスト (DC) を作成します。
- SetICMMode 関数を使用して色管理を設定します。
- DIB を DC に転送するには 、SetDIBitsToDevice 関数を使用します。 DIBs BITMAPV5HEADER 構造体の bV5CSMType メンバーが LCS_sRGB に設定されている限り、システムは適切な色管理を実行します。
デバイス コンテキストの外部にイメージをレンダリングするには
- CreateColorTransformW を使用して変換を作成します。 pLogColorSpace パラメーターが指す LOGCOLORSPACE 構造体の lcsCSType メンバーは、LCS_sRGBに設定する必要があります。 hDestProfile パラメーターは、ディスプレイ デバイスの色空間を示します。
- デバイスに表示する前に、作成したカラー変換を使用してイメージに一致する色を設定します。
WCS 1.0 入力色空間と出力プロファイルの既定値
入力色空間が指定されていない場合、既定では WCS 1.0 では、 カラー マッピングの入力色空間として sRGB 色空間が使用されます。
出力プロファイルが指定されていないが、既定のデバイスが指定されている場合、WCS 1.0 は既定の出力プロファイルを選択します。 既定のデバイスにプロファイルが関連付けられていない場合、WCS 1.0 では出力プロファイルとして sRGB 色空間が使用されます。
次の表は、既定のデバイスが使用できない場合の結果の色変換を示しています。
指定された出力プロファイル | 出力プロファイルが指定されていません | |
---|---|---|
指定された入力色空間 | 変換では、指定したプロファイルが使用されます。 | 変換は、既知の入力色空間から sRGB に変換します。 |
入力色空間が指定されていません | 変換により、sRGB から既知の出力プロファイルに変換されます。 | sRGB から sRGB への変換が想定されます。何も行われません。 |
sRGB プロファイルと埋め込みプロファイル
ICM バージョン 2.0 以降では、WCS を利用するアプリケーションでは、イメージにプロファイルを埋め込むことができます。 埋め込みプロファイルは、画像がインターネット経由で送信された場合でも、一貫した色の外観を維持するためにユーザーのアプリケーションを支援します。
sRGB 色空間を使用するイメージには、埋め込みカラー プロファイルは必要ありません。 プロファイルが埋め込まれないため、sRGB ベースのイメージは小さく、帯域幅が限られたデータ チャネル間でより簡単に転送できます。
アプリケーションでは、イメージのビットマップ ヘッダーに LCS_sRGB フラグを設定して、イメージで sRGB 色空間が使用されていることを示す必要があります。 詳細については、「 Windows ビットマップ ヘッダー構造 」と 「LOGCOLORSPACE」を参照してください。