本页内容

MaskedBlur QML Type

应用一种强度可调的模糊效果。更多...

Import Statement: import Qt5Compat.GraphicalEffects
Since: QtGraphicalEffects 1.0
Inherits:

Item

属性

详细说明

“带蒙版模糊”效果通过模糊处理使图像变得柔和。可利用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(无模糊)到 inf。默认情况下,该属性设置为0.0 (无模糊)。

不同半径值的输出示例

未应用模糊效果

中度的遮罩模糊

严重的蒙版模糊

半径:0 半径:8 radius: 16
samples: 25samples: 25samples: 25

注意: radius 属性 用于计算特效的离屏缓冲区大小。数值越大,占用的内存就越多。

samples : alias

此属性定义在计算模糊效果时,每个像素会采样多少次。数值越大,效果越好,但渲染速度越慢。

理想情况下,该值应为所需最大半径值的两倍再加1。例如,如果半径在0.0到4.0之间进行动画变化,则采样数应设置为9。

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

该属性不适用于动画效果。更改此属性可能会导致底层 OpenGL 着色器被重新编译。

source : alias

此属性用于指定将被模糊处理的源项目。

注意: 不支持让效果包含自身,例如将“源”设置为该效果的父级。

© 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.