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
详细说明
高斯模糊(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 : int |
该属性定义了模糊计算时每个像素取样的数量。数值越大,质量越好,但渲染速度越慢。
理想情况下,该值应是所需最高半径值的两倍再加 1,例如,如果半径在 0.0 和 4.0 之间,样本数应设置为 9。
默认情况下,该属性设置为9
。
注意: 该属性并非用于动画效果。更改此属性可能会导致重新编译底层 OpenGL 着色器。
source : variant |
该属性定义要模糊的源项。
注意: 不支持让效果包含自身,例如将源设置为效果的父项。
transparentBorder : bool |
该属性定义了项目边缘附近的模糊行为,像素模糊会受到源边缘以外像素的影响。
如果将该属性设置为true
,源以外的像素将被解释为透明,这与 OpenGL 夹角到边界扩展类似。模糊会稍微扩展到效果项区域之外。
如果将该属性设置为false
,源以外的像素将被解释为包含与项目边缘像素相同的颜色,这与 OpenGL 夹角到边缘行为类似。模糊不会扩展到效果项区域之外。
默认情况下,该属性设置为false
。
© 2025 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.