颜色管理效果

使用颜色管理效果将图像从一个 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(Perceptual Quantizer)颜色空间的 DXGI_COLOR_SPACE_TYPE 枚举值之一,则应用程序打算处理 HDR 数据。

ID2D1DeviceContext5::CreateColorContextFromSimpleColorProfileID2D1DeviceContext5::CreateColorContextFromDxgiColorSpace API 不考虑该 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