QML类型说明-GaussianBlur

GaussianBlur

ImportStatement:   import QtGraphicalEffects 1.0

Since:  QtGraphicalEffects 1.0

Inherits:      Item

 

Properties

cached :bool

deviation :real

radius :real

samples :int

source :variant

transparentBorder: bool

 

DetailedDescription

GaussianBlur通过高斯函数计算模糊的算法来软化图像。模糊的质量比FastBlur高,但渲染的较慢。

影响

 


实现代码:

importQtQuick 2.0

importQtGraphicalEffects 1.0

 

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

    }

}

 

PropertyDocumentation

cached :bool

是否缓冲输出,缓冲提高渲染效率,但消耗更多内存。每当源或影响属性发生变化,缓冲都会更新。当源和影响属性是动画时,推荐关闭缓冲,默认为假。

 

deviation :real

这是高斯函数的一个参数,用于计算相邻像素在模糊中的权重。巨大的deviation使图片更模糊,但同时降低模糊的质量。非常巨大的值让影响看上去有点类似于经过模糊算法的一个盒子。太小的值使半径周围的像素变得微不足道。


上图展现了高斯函数两个不同的deviation值,黄色为1,青色为2.7。y轴是权重,x轴是距离。

值在0.0(没有偏差)到inf(最大偏差)之间。默认情况下,devaition绑定半径。当半径增加,devaition自动线性增加。当半径值为8,devaition值大约为2.7034。这个值是模糊质量和模糊强度的妥协结果。

Deviation的影响    

deviation: 1 deviation: 2 deviation: 4
radius: 8 radius: 8 radius: 8
samples: 16 samples: 16 samples: 16

 

radius :real

可以影响单个像素模糊结果的像素所在范围。就是该像素周围的一个圈,圈内的像素都影响该像素的模糊结果。较大的半径能提高模糊效果。为了确保模糊质量,较大的半径需要更多的样品。值从0.0(没有模糊)到inf。默认属性值为0.0。

半径的影响    

radius: 0 radius: 4 radius: 8
samples: 16 samples: 16 samples: 16
deviation: 3 deviation: 3 deviation: 3


samples :int

计算模糊时,每像素取多少样品。更多的样品有更好的模糊质量,但渲染得更慢。

理想情况下,它应该是半径值最大值两倍。例如,如果半径是在0.0到0.4之间的动画,样品之应该设置成8。这个属性的值在0到32之间,默认为0。这个属性不能动画化,因为改变这个属性会导致OpenGL的着色器重新编译。

 

source :variant

需要模糊的源,它不能模糊自身,所以不能设置父到source上。

 

transparentBorder: bool

模糊在源实例边缘附近的行为,在源边缘是否受外部像素的影响。

如果属性为真,源外边的像素被解释为透明,这类似于OpenGL的clamp-to-border扩展行为,模糊扩展到源实例的外部。

如果属性为假,源外边的像素被解释为和边缘一个颜色,这类似于OpenGL的clamp-to-edge扩展行为,模糊不会扩展到源实例的外部。

默认为假。

transparentBorder的影响    

transparentBorder: false transparentBorder: true
radius: 8 radius: 8
samples: 16 samples: 16
deviation: 2.7 deviation: 2.7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值