QML 图形渲染 - GaussianBlur

作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

属性介绍

  • cached : bool
    使用缓存效果输出像素,可以提高渲染性能。每次更改源或效果属性时,都必须更新缓存中的像素。会增加内存消耗,因为存储效果输出需要额外的内存缓冲区。所以我们建议在源属性或效果属性设置动画时禁用缓存。默认为 false

  • deviation : real
    高斯函数的一个参数,用于计算模糊的相邻像素权重。偏差越大,图像越模糊,但也会降低模糊的质量。该值的范围为 0.0(无偏差)到 inf(最大偏差)。默认情况下绑定到半径。当半径增加时,偏差将自动线性增加。半径值为 8 时,偏差默认值约为 2.7034。该值在模糊质量和整体模糊度之间产生折中

  • radius : real
    影响单个像素模糊的相邻像素的距离。较大的半径会增加模糊效果。该值的范围为 0.0(无模糊)到 inf。默认情况下,该属性设置为 floor(samples / 2.0)

  • samples : int
    在完成模糊计算时每个像素采集的采样数。值越大,质量越好,但渲染速度越慢。默认情况下,该值为 9。注意:此属性不触发动画。更改此属性可能会导致重新编译基础 OpenGL 着色器

  • source : variant
    要模糊的源项。注意:不支持让效果包含自身

  • transparentBorder : bool
    项目边缘附近的模糊行为,其中像素模糊受源边缘外像素的影响。如果该属性设置为 true,则源外部的像素将被解释为透明的,这类似于 OpenGL 钳制到边框扩展。模糊在效果项区域外稍微展开。如果该属性设置为 false,则源之外的像素将被解释为包含与项目边缘像素相同的颜色,这类似于 OpenGL 钳制到边缘的行为。模糊不会在效果项区域之外展开。默认情况下,该属性设置为 false

注意事项

  1. GaussianBlur 支持 OpenGL 渲染
  2. 高斯模糊效果通过使用高斯函数计算效果的算法使图像模糊来软化图像。该效果产生的质量高于 FastBlur,但渲染速度较慢

不同数值效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

官方示例

import QtQuick 2.12
import QtGraphicalEffects 1.12

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
    }
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_34139994/article/details/120053364