递归模糊 QML 类型

重复模糊,提供强烈的模糊效果。 更多...

导入说明import Qt5Compat.GraphicalEffects
QtGraphicalEffects 1.0
继承自

Item

属性

详细描述

RecursiveBlur 效果通过使用具有递归反馈循环进行多次模糊的算法来柔化图像。该效果可能比 GaussianBlurFastBlur 给出更模糊的结果,但结果异步产生,需要更多时间。

应用的特效

注意:此效果在 OpenGL 运行时可用。

示例

以下示例显示了如何应用此效果。

import QtQuick
import Qt5Compat.GraphicalEffects

Item {
    width: 300
    height: 300

    Image {
        id: bug
        source: "images/bug.jpg"
        sourceSize: Qt.size(parent.width, parent.height)
        smooth: true
        visible: false
    }

    RecursiveBlur {
        anchors.fill: bug
        source: bug
        radius: 7.5
        loops: 50
    }
}

属性文档

cached : bool

此属性允许将效果的输出像素缓存起来以提高渲染性能。

每次更改源或效果属性时,缓存中的像素都必须更新。由于需要额外的内存缓冲区来存储效果的输出,因此内存消耗增加。

当动画源或效果属性时,建议禁用缓存。

默认情况下,此属性设置为 false


loops : int

此属性定义要对源执行的模糊迭代次数。当属性更改时,迭代模糊过程开始。如果值减小或从零更改为非零,则从源中提取快照。快照用作过程的起始点。

迭代循环尽可能快地运行。速度可能受到 VSYNC 或单个模糊步骤所需的时间的限制,或两者都受到影响。有时可能希望以较慢的节奏执行模糊。在这种情况下,可以使用 Animation 控制属性以增加该值,这可能很方便。

值范围为 0 到 inf。默认情况下,此属性设置为 0

输出不同循环值的示例

循环数:4循环数:20循环数:70
半径: 7.5半径: 7.5半径: 7.5

进度实数

此属性存储异步源模糊过程的进度,从0.0(无模糊)到1.0(完成)。


半径实数

此属性定义了影响单个像素模糊的邻近像素的距离。较大的半径可以提供更好的质量,但渲染速度较慢。

注意:此效果中的半径值不打算经常更改或动画化。正确使用方法是设置正确的值,并在整个迭代模糊序列持续时间内保持不变。

值范围从(无模糊)到16.0(最大模糊步骤)。默认情况下,此属性设置为0.0(无模糊)。

输出不同半径值的示例

半径:2.5半径:4.5半径:7.5
循环: 20循环: 20循环: 20

source变体

此属性定义将要进行模糊的源项。

注意: 不支持使效果包括自身,例如通过将源设置为效果的父项。


透明边框布尔值

此属性定义项边缘附近的模糊行为,其中像素模糊受到源边缘外像素的影响。

如果将属性设置为true,则源外的像素被解释为透明,这与OpenGL的clamp-to-border扩展类似。模糊会在效果项区域外略有扩展。

如果将属性设置为false,则源外的像素被解释为包含与项边缘像素相同的颜色,这与OpenGL的clamp-to-edge行为类似。模糊不会扩展到效果项区域外。

默认情况下,此属性设置为 false

输出不同透明边框值的示例

透明边框:false透明边框:true
循环: 20循环: 20
半径: 7.5半径: 7.5

© 2024 Qt公司。此处包含的文档贡献是各自所有者的版权。提供的文档是在自由软件基金会出版的GNU自由文档许可证版本1.3的条款下授权的。Qt及其相关标志是芬兰和/或世界上其他国家的Qt公司商标。所有其他商标均为各自所有者的财产。