颜色管理效果
使用颜色管理效果将图像从一个 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::CreateColorContextFromSimpleColorProfile 和 ID2D1DeviceContext5::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 |