sRGB:标准颜色空间

出于 Internet 带宽考虑,Hewlett-Packard和 Microsoft 建议采用标准预定义 颜色空间 ,称为 sRGB (IEC 61966-2-1) ,以便能够在极少量数据开销的情况下进行准确的 颜色映射

WCS 1.0 程序员参考的 \Help 文件夹中提供了讨论 sRGB 技术详细信息的白皮书的帮助文件版本 sRGB.hlp。

不同的文件格式可以使用或添加标志来指定图像位于 sRGB 颜色空间中。 在 Windows 设备无关位图 (DIB) 格式中,将 BITMAPV5HEADER 结构的 bV5CSType 成员设置为 LCS_sRGB 指定 DIB 颜色位于 sRGB 颜色空间中。

WCS 1.0 提供对 sRGB 的本机支持。 可通过两种方法使用 WCS 1.0 呈现 sRGB 颜色空间中定义的图像:

在设备上下文中呈现图像

  1. 在显示设备上 (DC) 创建设备上下文。
  2. 使用 SetICMMode 函数设置颜色管理。
  3. 使用 SetDIBitsToDevice 函数将 DIB 传输到 DC。 只要 DIB BITMAPV5HEADER 结构的 bV5CSMType 成员设置为 LCS_sRGB,系统就会执行相应的颜色管理。

在设备上下文外部呈现图像

  1. 使用 CreateColorTransformW 创建转换。 pLogColorSpace 参数指向的 LOGCOLORSPACE 结构的 lcsCSType 成员应设置为 LCS_sRGBhDestProfile 参数指示显示设备的颜色空间。
  2. 在设备上显示图像之前,使用创建的颜色转换来匹配图像。

输入颜色空间和输出配置文件的 WCS 1.0 默认值

如果未指定输入颜色空间,则默认情况下 WCS 1.0 使用 sRGB 颜色空间作为 颜色映射的输入颜色空间。

如果未指定输出配置文件,但指定了默认设备,WCS 1.0 会选择默认输出配置文件。 如果默认设备没有关联的配置文件,WCS 1.0 将使用 sRGB 颜色空间作为输出配置文件。

下表显示了默认设备不可用时生成的颜色转换。

  指定的输出配置文件 未指定输出配置文件
指定的输入颜色空间 转换使用指定的配置文件。 转换将已知输入颜色空间转换为 sRGB。
未指定输入颜色空间 转换从 sRGB 转换为已知的输出配置文件。 假定从 sRGB 转换为 sRGB;什么也没做。

 

sRGB 和嵌入式配置文件

从 ICM 版本 2.0 开始,利用 WCS 的应用程序可以在映像中嵌入配置文件。 嵌入式配置文件可帮助用户的应用程序保持一致的颜色外观,即使图像通过 Internet 传输也是如此。

使用 sRGB 颜色空间的图像不需要嵌入的颜色配置文件。 由于它们没有嵌入式配置文件,因此基于 sRGB 的映像更小,并且更容易在带宽有限的数据通道之间传输。

应用程序应在图像的位图标头中设置 LCS_sRGB 标志,以指示图像使用 sRGB 颜色空间。 有关详细信息,请参阅 Windows 位图标头结构和LOGCOLORSPACE