高斯模糊效果

使用高斯模糊效果基于高斯函数对整个输入图像创建模糊。

可以使用此效果创建发光和投影,并使用 复合 效果将结果应用于原始图像。 它适用于突出显示和阴影等筛选器的照片处理。 可以使用此效果的输出输入到照明效果中,如 反射照明漫射照明 效果,因为 alpha 通道也模糊,并且照明效果使用 alpha 通道来确定表面几何图形作为高度贴图。

内置 阴影 效果使用此效果。

此效果的 CLSID 是CLSID_D2D1GaussianBlur。

示例图

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

gaussianBlurEffect->SetInput(0, bitmap);
gaussianBlurEffect->SetValue(D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION, 3.0f);

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

效果属性

显示名称和索引枚举 说明
标准偏差
D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION
要应用于图像的模糊量。 可以通过将标准偏差乘以 3 来计算内核的模糊半径。 标准偏差和模糊半径的单位均为 DIP。 如果值为零 DIP,则完全禁用此效果。 类型为 FLOAT。
默认值为 3.0f。
Optimization
D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION
优化模式。 有关详细信息,请参阅 优化模式 。 类型为D2D1_GAUSSIANBLUR_OPTIMIZATION。
默认值为 D2D1_GAUSSIANBLUR_OPTIMIZATION_BALANCED。
BorderMode
D2D1_GAUSSIANBLUR_PROP_BORDER_MODE
用于计算图像边框(软或硬)的模式。 有关详细信息,请参阅 边框模式
类型为D2D1_GAUSSIANBLUR_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则输出位图的大小将增加模糊内核的大小(以像素表示)。 此表提供了一个公式,可用于计算输出位图。

Output bitmap growth (X and Y) = StandardDeviation (DIPs)*6*((User DPI)/96)

因此,如果图像大小在每个方向上增加 10 个像素,则图像的左上角将位于 (-5) ,而右下角将位于 (105、105) 。

要求

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

ID2D1Effect