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 颜色空间中定义的图像:
在设备上下文中呈现图像
- 在显示设备上 (DC) 创建设备上下文。
- 使用 SetICMMode 函数设置颜色管理。
- 使用 SetDIBitsToDevice 函数将 DIB 传输到 DC。 只要 DIB 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 的应用程序可以在映像中嵌入配置文件。 嵌入式配置文件可帮助用户的应用程序保持一致的颜色外观,即使图像通过 Internet 传输也是如此。
使用 sRGB 颜色空间的图像不需要嵌入的颜色配置文件。 由于它们没有嵌入式配置文件,因此基于 sRGB 的映像更小,并且更容易在带宽有限的数据通道之间传输。
应用程序应在图像的位图标头中设置 LCS_sRGB 标志,以指示图像使用 sRGB 颜色空间。 有关详细信息,请参阅 Windows 位图标头结构和LOGCOLORSPACE。