GaussianBlur QML Type
应用更高质量的模糊效果。更多...
| Import Statement: | import Qt5Compat.GraphicalEffects |
| Since: | QtGraphicalEffects 1.0 |
| Inherits: |
属性
- cached : bool
- deviation : real
- radius : real
- samples : int
- source : variant
- transparentBorder : bool
详细说明
注意: MultiEffect 组件 提供了一种 具有一定性能优势的模糊效果。对于新代码,应将其视为QtGraphical Effects 的替代方案。
高斯模糊(GaussianBlur)效果通过一种利用高斯函数计算效果的算法对图像进行模糊处理,从而使图像变得柔和。该效果的质量高于FastBlur ,但渲染速度较慢。
特别需要注意的是,修改高斯模糊的属性在许多情况下需要从头重建着色器代码,因此该效果属性的动画处理不仅性能可能较差,还会占用大量缓存空间。因此,对于动画模糊效果,通常应优先选用FastBlur 。
| 来源 | 已应用的效果 |
|---|---|
|
|
注意:此 特效仅在运行 OpenGL 时可用。
示例
以下示例演示了如何应用该特效。
import QtQuick
import QtGraphicalEffects
Item {
width: 300
height: 300
Image {
id: bug
source: "images/bug.jpg"
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
visible: false
}
GaussianBlur {
anchors.fill: bug
source: bug
radius: 8
samples: 16
}
}实时执行模糊处理是一项耗费资源的操作。即使是采样数量适中的全屏高斯模糊,也只有在高端图形硬件上才能以 60 fps 的帧率运行。
属性文档
cached : bool
此属性允许将效果输出像素缓存起来,以提升渲染性能。每当源或效果属性发生变化时,缓存中的像素都必须更新。由于需要额外的内存缓冲区来存储效果输出,因此内存消耗会增加。
当源或效果属性处于动画状态时,建议禁用缓存。
默认情况下,该属性设置为false 。
deviation : real
该属性是高斯函数的一个参数,用于计算模糊处理时相邻像素的权重。偏差值越大,图像看起来越模糊,但模糊效果的质量也会随之降低。如果偏差值非常大,效果会与盒式模糊算法生成的效果有些相似。 如果偏差值过小,则半径范围内的像素所受的影响将微乎其微。

上图展示了高斯函数在两种不同偏差值(黄色为 1,青色为 2.7)下的效果。y 轴表示权重,x 轴表示像素距离。
该值范围从 0.0(无偏差)到 inf(最大偏差)。 默认情况下,偏差与半径绑定。当半径增大时,偏差会自动线性增加。当半径值为 8 时,偏差的默认值约为 2.7034。该值在模糊质量和整体模糊程度之间取得了平衡。
radius : real
此属性定义了影响单个像素模糊效果的相邻像素之间的距离。半径越大,模糊效果越明显。
要获得理想的模糊效果,需将“samples ”和“radius ”设置为使samples = 1 + radius * 2 ,例如:
| 半径 | 采样数 |
|---|---|
| 0(无模糊) | 1 |
| 1 | 3 |
| 2 | 5 |
| 3 | 7 |
该值的取值范围为 0.0(无模糊)到 inf。默认情况下,该属性设置为floor(samples / 2.0) 。
| 不同半径值的输出示例 | ||
|---|---|---|
|
|
|
| radius: 0 | radius: 4 | radius: 8 |
| samples: 16 | samples: 16 | samples: 16 |
| deviation: 3 | deviation: 3 | deviation: 3 |
注: radius 属性 用于计算特效的离屏缓冲区大小。数值越大,占用的内存就越多。
samples : int
此属性定义了在进行模糊计算时,每个像素会采样多少次。数值越大,图像质量越高,但渲染速度越慢。
理想情况下,该值应为所需最大半径值的两倍再加 1;例如,如果半径在 0.0 到 4.0 之间进行动画变化,则采样数应设置为 9。
默认情况下,该属性设置为9 。
注意:此 属性不适用于动画效果。更改此属性可能会导致底层 OpenGL 着色器被重新编译。
source : variant
此属性用于指定将被模糊处理的源项目。
注意: 不支持让效果包含自身,例如将“源”设置为该效果的父级。
transparentBorder : bool
该属性定义了项目边缘附近的模糊行为,此时像素的模糊效果会受到源边缘外部像素的影响。
如果该属性设置为true ,则源区域外的像素将被解释为透明,这类似于 OpenGL 的“clamp-to-border”扩展。模糊效果会稍微扩展到效果项区域之外。
如果将该属性设置为false ,则源区域外的像素将被解释为与项目边缘像素具有相同的颜色,这类似于 OpenGL 的“clamp-to-edge”行为。模糊效果不会扩展到效果项目区域之外。
默认情况下,该属性设置为false 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.









