方向模糊效果
方向模糊效果类似于 高斯模糊,只不过可以向特定方向倾斜模糊。 可以使用此效果使图像看起来像在运动中,或强调动画图像。
此效果的 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();
效果属性
显示名称和索引枚举 | 说明 |
---|---|
标准偏差 D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION |
要应用于图像的模糊量。 可以通过将标准偏差乘以 3 来计算内核的模糊半径。 标准偏差和模糊半径的单位均为 DIP。 值为 0 的 DIP 会禁用此效果。 类型为 FLOAT。 默认值为 3.0f。 |
角度 D2D1_DIRECTIONALBLUR_PROP_ANGLE |
逆时针方向相对于 x 轴的模糊角度。 单位以度为单位指定。 模糊内核首先使用与 高斯模糊 效果相同的过程生成。 然后,根据模糊角度转换内核值。 类型为 FLOAT。 默认值为 0.0f。 |
Optimization 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 * ( (用户 DPI) / 96) * cos (Angle) ) |
输出位图增长 Y | StandardDeviation (DIP) * 6 * ( (用户 DPI) / 96) * sin (Angle) ) |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |Windows 应用商店应用] |
最低受支持的服务器 | 适用于 Windows 7 的Windows 8和平台更新 [桌面应用 |Windows 应用商店应用] |
标头 | d2d1effects.h |
库 | d2d1.lib、dxguid.lib |