色调旋转效果

使用色调旋转效果通过应用基于旋转角度的颜色矩阵来更改图像的色调。

此效果的 CLSID 是CLSID_D2D1HueRotation。

示例图

此处的示例显示了旋转角度为 270 度的色调旋转效果的输入和输出图像。

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

hueRotationEffect->SetInput(0, bitmap);
hueRotationEffect->SetValue(D2D1_HUEROTATION_PROP_ANGLE, 270.0f);

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

该效果根据使用 D2D1_HUEROTATION_PROP_ANGLE 属性指定的旋转角度 () 计算颜色矩阵。 下面是矩阵公式。

色调旋转计算

创建的矩阵仅取决于旋转角度。 如果需要特定矩阵,可以使用 颜色矩阵 效果。

效果属性

显示名称和索引枚举 类型和默认值 说明
角度
D2D1_HUEROTATION_PROP_ANGLE
FLOAT
0.0f
旋转色调的角度(以度为单位)。

输出位图

输出位图大小与输入位图大小相同。

要求

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

ID2D1Effect