方向模糊效果

方向模糊效果类似于 高斯模糊,但你可以倾斜特定方向的模糊效果。 可以使用此效果使图像看起来好像在运动中或强调动画图像。

此效果的 CLSID CLSID_D2D1DirectionalBlur。

示例图像

以前
在效果之前 图像。
转换后 图像。
ComPtr<ID2D1Effect> directionalBlurEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DirectionalBlur, &directionalBlurEffect);

directionalBlurEffect->SetInput(0, bitmap);
directionalBlurEffect->SetValue(D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION, 7.0f);

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

效果属性

显示名称和索引枚举 描述
StandardDeviation
D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION
要应用于图像的模糊量。 可以通过将标准偏差乘以 3 来计算内核的模糊半径。 标准偏差和模糊半径的单位都是 DIP。 值为 0 的 DIP 会禁用此效果。 类型为 FLOAT。
默认值为 3.0f。
角度
D2D1_DIRECTIONALBLUR_PROP_ANGLE
相对于 x 轴的模糊角度,以逆时针方向显示。 以度为单位指定单位。
模糊内核首先使用与 高斯模糊 效果相同的过程生成。 然后,根据模糊角度转换内核值。
类型为 FLOAT。
默认值为 0.0f。
优化
D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION
优化模式。 有关详细信息,请参阅 优化模式
类型为D2D1_DIRECTIONALBLUR_OPTIMIZATION。
默认值为D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED。
BorderMode
D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE
用于计算图像边框、软边框或硬边框的模式。 有关详细信息,请参阅 边框模式
类型为D2D1_BORDER_MODE。
默认值为D2D1_BORDER_MODE_SOFT。

优化模式

名字 描述
D2D1_DIRECTIONALBLUR_OPTIMIZATION_SPEED 应用内部优化,例如以相对较小的弧度预先缩放。 使用线性筛选。
D2D1_DIRECTIONALBLUR_OPTIMIZATION_BALANCED 使用与速度模式相同的优化阈值,但使用三线性筛选。
D2D1_DIRECTIONALBLUR_OPTIMIZATION_QUALITY 仅使用具有大模糊弧度的内部优化,其中近似值不太可能可见。 使用三线性筛选。

边框模式

名字 描述
D2D1_BORDER_MODE_SOFT 该效果使用透明黑色像素填充图像,因为它应用模糊内核,从而导致软边缘。
D2D1_BORDER_MODE_HARD 该效果将输出固定到输入图像的大小。 当效果应用模糊内核时,它会使用镜像类型边框转换扩展输入图像,以便在输入边界外的示例。

输出位图

输出位图的大小根据标准偏差、效果角度和边框模式增加。 如果边框模式设置为D2D1_BORDER_MODE_SOFT输出位图的大小会随着模糊内核的大小而增加,以像素表示。 这些公式可用于计算输出位图的大小。

要求 价值
输出位图增长 X StandardDeviation (DIP) * 6 * (User DPI) / 96) * cos(Angle))
输出位图增长 Y StandardDeviation (DIP) * 6 * (User DPI) / 96) * sin(Angle))

要求

要求 价值
支持的最低客户端 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用]
支持的最低服务器 适用于 Windows 7 的 Windows 8 和平台更新 [桌面应用 |Windows 应用商店应用]
页眉 d2d1effects.h
图书馆 d2d1.lib、dxguid.lib

ID2D1Effect