饱和度效果

使用此效果可更改图像的饱和度。 饱和度效果是 颜色矩阵 效果的专用化。

此效果的 CLSID 是CLSID_D2D1Saturation。

示例图

此处的示例显示了饱和度效果的输入和输出图像,饱和度为 0%。

之前
效果前的图像。
之后
转换后的图像。
ComPtr<ID2D1Effect> saturationEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Saturation, &saturationEffect);

saturationEffect->SetInput(0, bitmap);

saturationEffect->SetValue(D2D1_SATURATION_PROP_SATURATION, 0.0f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(saturationEffect.Get());
m_d2dContext->EndDraw();

效果根据此处公式中的饱和值 (s 计算颜色矩阵,) 使用 D2D1_SATURATION_PROP_SATURATION 属性指定。 矩阵公式如下所示。

用于计算饱和矩阵的公式。

创建的矩阵仅取决于饱和值。 如果需要特定矩阵,可以使用 颜色矩阵 效果。

此效果使用并输出预乘 alpha 图像。 除非直 alpha 图像完全不透明,否则该效果将不起作用。

效果属性

显示名称和索引枚举 类型和默认值 说明
饱和度
D2D1_SATURATION_PROP_SATURATION
FLOAT
0.5f
图像的饱和度。 可以将饱和度设置为介于 0 和 1 之间的值。 如果将其设置为 1,则输出图像将完全饱和。 如果将其设置为 0,则输出图像为单色。 饱和值为无单位。

要求

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

ID2D1Effect