MaskedBlur QML 类型

应用具有可变强度的模糊效果。更多...

导入语句import Qt5Compat.GraphicalEffects
自从QtGraphicalEffects 1.0
继承

Item

属性

详细信息

MaskedBlur 效果通过模糊图像来软化图像。可以使用 maskSource 控制每个像素的模糊强度,使源的一部分比其他部分更模糊。

执行实时模糊是一个非常耗费资源的操作。即使是在高端图形硬件上,带有足够样例的全屏高斯模糊也只能以 60 fps 的速度运行。

来源MaskSource应用的效果

注意:此效果在使用 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
    }

    LinearGradient {
        id: mask
        anchors.fill: bug
        gradient: Gradient {
            GradientStop { position: 0.2; color: "#ffffffff" }
            GradientStop { position: 0.5; color: "#00ffffff" }
        }
        start: Qt.point(0, 0)
        end: Qt.point(300, 0)
        visible: false
    }

    MaskedBlur {
        anchors.fill: bug
        source: bug
        maskSource: mask
        radius: 16
        samples: 24
    }
}

属性文档

cached : alias

该属性允许将效果输出像素缓存起来以改善渲染性能。每次更改源或效果属性时,缓存中的像素都必须更新。由于需要额外的内存缓冲区来存储效果输出,内存消耗会增加。

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

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


maskSource : alias

该属性定义控制模糊最终强度的项目。从 maskSource 中像素的 alpha 通道值定义用于模糊相应源像素的实际模糊半径。

不透明的 maskSource 像素会产生指定 radius 的模糊,而透明像素将完全抑制模糊。半透明 maskSource 像素会产生一个根据像素透明度级别插值后的半径进行模糊。


radius : alias

该属性定义影响单个像素模糊的相邻像素的距离。较大的半径增加了模糊效果。

根据半径值,应该将 samples 设置得足够大,以确保视觉效果。

值范围从0.0(无模糊)到无穷大。默认情况下,该属性设置为0.0(无模糊)。

不同半径值的输出示例

半径:0半径:8半径:16
样本数: 25样本数: 25样本数: 25

样本数 : 别名

该属性定义了在执行模糊计算时每像素要取多少样本。更大的值产生更好的质量,但渲染速度较慢。

理想情况下,该值应该是所需最高半径值的两倍加1,例如,如果半径在0.0和4.0之间动画化,样本数应设置为9。

默认情况下,该属性设置为9

该属性不应用于动画。更改此属性可能会重新编译底层的OpenGL着色器。


: 别名

该属性定义了将要进行模糊处理的目标项。

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


© 2024 The Qt Company Ltd. 本文档中的文档贡献属于其各自的业主。本处提供的文档是根据由自由软件基金会发布的GNU自由文档许可版本1.3的条款许可的。Qt及其相应的标志是The Qt Company Ltd.在芬兰和/或其他国家/地区的商标。所有其他商标均为其各自业主的财产。