インターネット帯域幅に関する考慮事項の結果として、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 関数を使用して色管理を設定します。
- SetDIBitsToDevice 関数を使用して、DIB を DC に転送します。 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 のを参照してください。