色调旋转效果

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

此效果的 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 8 和适用于 Windows 7 的平台更新 [桌面应用| Windows 应用商店应用]
支持的最低服务器版本 Windows 8 和适用于 Windows 7 的平台更新 [桌面应用| Windows 应用商店应用]
头文件 d2d1effects.h
d2d1.lib、dxguid.lib

ID2D1Effect