QML类型:OpacityMask

本文介绍了如何在Qt Quick中使用OpacityMask组件,展示如何设置两个Image作为源和掩码,以实现透明度效果。讲解了cached、invert属性和maskSource/source的用法,适合前端开发者理解和实践图像处理技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、描述

此类型用于为两个项目设置掩码。

二、使用示例

 

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
    }

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

    OpacityMask {
        anchors.fill: bug
        source: bug
        maskSource: mask
    }
}

三、属性成员

1、cached : bool

是否允许缓存效果输出像素以提高渲染性能。默认为 false。

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

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

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

2、invert : bool

此属性控制 sourceMask 的 alpha 值的行为方式。默认为 false。

如果此属性为 false,则生成的不透明度是源 alpha 乘以掩码 alpha,As * Am。

如果此属性为真,则生成的不透明度是源 alpha 乘以掩码 alpha 的倒数 As * (1 - Am)。

3、maskSource : variant

将用作掩码的项目。 掩码项被渲染到一个中间像素缓冲区中,结果中的 alpha 值用于确定源项在显示中的像素可见性。

4、source : variant

将被掩藏的源项。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值