颜色管理效果

使用颜色管理效果将图像从一个 ICC (国际颜色联盟) 颜色配置文件转换为另一个。 该效果根据 ICC 规范转换图像。

此效果的 CLSID CLSID_D2D1ColorManagement。

效果属性

显示名称和索引枚举 说明
SourceContext
D2D1_COLORMANAGEMENT_PROP_SOURCE_COLOR_CONTEXT
源颜色空间信息。 类型为 ID2D1ColorContext
默认值为 NULL。
SourceIntent
D2D1_COLORMANAGEMENT_PROP_SOURCE_RENDERING_INTENT
要使用的 ICC 呈现意向。 类型为D2D1_COLORMANAGEMENT_RENDERING_INTENT。
默认值为 D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL。
DestinationContext
D2D1_COLORMANAGEMENT_PROP_DESTINATION_COLOR_CONTEXT
目标颜色空间信息。 类型为 ID2D1ColorContext
默认值为 NULL。
DestinationIntent
D2D1_COLORMANAGEMENT_PROP_DESTINATION_RENDERING_INTENT
要使用的 ICC 呈现意向。 类型为D2D1_COLORMANAGEMENT_RENDERING_INTENT。
默认值为 D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL。
AlphaMode
D2D1_COLORMANAGEMENT_PROP_ALPHA_MODE
如何解释输入图像中包含的 alpha 数据。 类型为D2D1_COLORMANAGEMENT_ALPHA_MODE。
默认值为 D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED。
质量
D2D1_COLORMANAGEMENT_PROP_QUALITY
转换的质量级别。 类型为D2D1_COLORMANAGEMENT_QUALITY。
默认值为 D2D1_COLORMANAGEMENT_QUALITY_NORMAL。

呈现意向模式

枚举 描述
D2D1_COLORMANAGEMENT_RENDERING_INTENT_PERCEPTUAL 该效果压缩或扩展图像的全色域以填充设备的色域,以生成一个可保留颜色细节但可能牺牲比色准确性的令人愉悦的输出。 它可用于一般复制真实生活内容,如照片。
D2D1_COLORMANAGEMENT_RENDERING_INTENT_RELATIVE_COLORIMETRIC 该效果调整超出输出设备可以呈现到最接近的颜色的范围之外的任何颜色。 它不保留白点。
D2D1_COLORMANAGEMENT_RENDERING_INTENT_SATURATION 该效果保留图像中纯色的饱和度,但代价是色调和亮度。 它适用于图表和关系图等图形。
D2D1_COLORMANAGEMENT_RENDERING_INTENT_ABSOLUTE_COLORIMETRIC 该效果调整超出输出设备可以呈现到最接近的颜色的范围之外的任何颜色。 该效果不会更改色域内颜色,并保留白点。

输入图像 alpha 模式

枚举 描述
D2D1_COLORMANAGEMENT_ALPHA_MODE_PREMULTIPLIED 该效果假定 alpha 模式是预乘的。
D2D1_COLORMANAGEMENT_ALPHA_MODE_STRAIGHT 该效果假定 alpha 模式为直线。

D2D1_GAMMA1_G2084行为更改

如果应用程序使用 D2D1_GAMMA1_G2084 空间,或使用 SMPTE ST.2084 ( 感知量化) 颜色空间的DXGI_COLOR_SPACE_TYPE枚举值之一,则应用程序打算处理 HDR 数据。

ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfileID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace API 不考虑这一点;相反,在 G2084 DeGamma 操作期间,HDR 内容会缩放为适合 0-1 范围。

实际上,在此伽玛空间中编码的内容使用引用 WhiteLevel 10,000 Nits,该引用通常在 CCCS 中表示为 10,000 / 80 = 125.0。 因此,为了更好地促进你的应用,最简单的是这种伽玛转换,同时将亮度缩放为 125 的一个因子。 截至 Windows 10 版本 1809 (10.0;内部版本 17763) ,颜色管理效果的行为是应用此缩放。 这意味着,作为开发人员,你不必在管道中应用第二个 白级别调整效果

符合 ICC 规范

颜色管理效果符合 ICC v4.3 规范,但存在以下限制:

  • 该效果支持 1、3 和 4 个通道颜色空间。
  • 该效果不支持 ColorSpace 或命名颜色配置文件。

Alpha 通道行为

通常,如果源图像中没有 alpha 数据,则效果将 alpha 设置为 1 (不透明) ;如果目标图像中没有空间,则放弃 alpha 数据。 此处的表描述了 alpha 行为。

源颜色空间,像素格式 目标颜色空间,像素格式 Alpha 行为
1 通道,R 像素格式
1 通道,R 像素格式 (无 alpha 数据)
1 通道,RGBA 像素格式 Alpha 数据设置为 1 (不透明)
3 通道,RGBA 像素格式 Alpha 数据设置为 1 (不透明)
4 通道,RGBA 像素格式 (无 alpha 数据)
1 通道,RGBA 像素格式
1 通道,R 像素格式 Alpha 数据被丢弃
1 通道,RGBA 像素格式 Alpha 数据通过传递
3 通道,RGBA 像素格式 Alpha 数据通过传递
4 通道,RGBA 像素格式 Alpha 数据被丢弃
3 通道,RGBA 像素格式
1 通道,R 像素格式 Alpha 数据被丢弃
1 通道,RGBA 像素格式 Alpha 数据通过传递
3 通道,RGBA 像素格式 Alpha 数据通过传递
4 通道,RGBA 像素格式 Alpha 数据被丢弃
4 通道,RGBA 像素格式
1 通道,R 像素格式 (无 alpha 数据)
1 通道,RGBA 像素格式 Alpha 数据设置为 1 (不透明)
3 通道,RGBA 像素格式 Alpha 数据设置为 1 (不透明)
4 通道,RGBA 像素格式 (无 alpha 数据)

质量模式

“模式” 说明
D2D1_COLORMANAGEMENT_QUALITY_PROOF 最低质量模式。 此模式需要功能级别 9_1 或更高版本。
D2D1_COLORMANAGEMENT_QUALITY_NORMAL 正常质量模式。 此模式需要功能级别 9_1 或更高版本。
D2D1_COLORMANAGEMENT_QUALITY_BEST 最佳质量模式。 此模式需要功能级别 10_0 或更高版本,以及浮点精度缓冲区。 此模式支持 ICC v4.3 规范中定义的浮点精度和扩展范围。

如果应用程序请求硬件不支持的质量模式,则绘图时颜色管理效果将失败。 调用 D3D11CreateDevice 时,可以确定功能级别。 可以通过使用值D2D1_BUFFER_PRECISION_32BPC_FLOAT调用 ID2D1EffectContext::IsBufferPrecisionSupported检查浮点缓冲区支持。

代码示例

有关此效果的示例,请下载 Direct2D 效果照片调整示例,并参阅示例的第 4 课。

要求

要求
最低受支持的客户端 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |Windows 应用商店应用]
最低受支持的服务器 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |Windows 应用商店应用]
标头 d2d1effects.h
d2d1.lib、dxguid.lib