利用QtGraphicalEffects来使得自己的图像显示更加生动

有兴趣的开发人员能够參阅连接http://doc.qt.io/qt-5/qtgraphicaleffects-qmlmodule.html来深度学习Qt对Graphics方面的处理。

在今天的这篇文章中。我们来使用OpacityMask做一个小小的样例来抛砖引玉看看Qt对我们的图像的处理。

详细的样例在Qt的官方站点上能够看到。因为一些原因,在官方站点上下载的例程中的文件并不能被使用,须要做一些的处理才干够。

以下,我们直接来把我们的样例展示给大家:

import QtQuick 2.0
import Ubuntu.Components 1.1
import QtGraphicalEffects 1.0

/*!
    \brief MainView with a Label and Button elements.
*/

MainView {
    // objectName for functional testing purposes (autopilot-qt5)
    objectName: "mainView"

    // Note! applicationName needs to match the "name" field of the click manifest
    applicationName: "mask.liu-xiao-guo"

    /*
     This property enables the application to change orientation
     when the device is rotated. The default is false.
    */
    //automaticOrientation: true

    // Removes the old toolbar and enables new features of the new header.
    useDeprecatedToolbar: false

    width: units.gu(60)
    height: units.gu(85)

    Page {
        title: i18n.tr("mask")

        Flickable {
            anchors.fill: parent
            contentHeight: mypics.childrenRect.height

            Item {
                id: mypics
                width: parent.width
                height: units.gu(80)

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

                Image {
                    id: bug1
                    height: parent.height/2
                    width: height
                    source: "images/bug.png"
                    anchors.top: bug.bottom
                    anchors.topMargin: units.gu(1)
                    sourceSize: Qt.size(parent.width, parent.height)
                    smooth: true
                    visible: false
                }

                Rectangle {
                    id: mask
                    anchors.margins: 10
                    width: 65
                    height: 65
                    color: "black"
                    radius: width/2
                    clip: true
                    visible: false
                }

                Image {
                    id: mask1
                    height: units.gu(40)
                    width: height
                    source: "images/bufferfly.png"
                    sourceSize: Qt.size(parent.width, parent.height)
                    smooth: true
                    visible: false
                }

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

                OpacityMask {
                    anchors.fill: bug1
                    source: bug
                    maskSource: mask1
                }
            }
        }
    }
}

在这里。我们使用了Image来展示图片,可是。他们并非可见的(visible = false)。我们能够通过一个掩膜mask,在mask上值为非透明的地方能够显示出图像。

能够通过OpacityMask来使得它们能够显示。

我们的mask图片bufferfly.png例如以下:

bug.png的原图为:

执行我们的例程,效果图例如以下:

  

源代码在: https://github.com/liu-xiao-guo/mask

时间: 2024-08-24 17:51:43

利用QtGraphicalEffects来使得自己的图像显示更加生动的相关文章

UFLDL教程之(三)PCA and Whitening exercise

Exercise:PCA and Whitening 第0步:数据准备 UFLDL下载的文件中,包含数据集IMAGES_RAW,它是一个512*512*10的矩阵,也就是10幅512*512的图像 (a)载入数据 利用sampleIMAGESRAW函数,从IMAGES_RAW中提取numPatches个图像块儿,每个图像块儿大小为patchSize,并将提取到的图像块儿按列存放,分别存放在在矩阵patches的每一列中,即patches(:,i)存放的是第i个图像块儿的所有像素值 (b)数据去均

各团队对《t铁大导航》评价及我组回复

组名 对我们组的建议 我组回复 (1)跑男 你们的导航前期要做到什么样的程度呢?其实我一直是很期待你们完成时我能够用你们的导航来感受一下咱们铁大校园风情.你们用了数据结构算法来找最短路径,那你们能不能和定位结合一下我想去去买个面包那我是去超市,学一,学二还是综餐比较近呢?感觉3D效果不够理想,能不能再努力一下呢?还有就是咱们的图片别弄得那么扭曲也是可以的吧?最后就是你感觉导航的时候使用文字来提示还是用路线图来提示哪个更好一点儿呢?改天让咱们大家一块带着你们的导航出行吧! 谢谢你们真诚的建议!定位

《即兴演讲》思维导图,每个人都应学习的即兴技能

所谓即兴演讲,就是在事先没有任何准备的情况下,自发或被要求立刻进行的当众发言,是一种不凭借演讲稿来表情达意的口语交际活动,完全是随想随说,由感而发.即兴演讲是一种少数人掌握的艺术,但是对于每一个奋斗在职场的人而言,无论是作为员工,还是作为团队领导者,做好不同场合的即兴演讲都是必要的. 在本书中,作者汉弗莱女士提供了多种场合的即兴演讲脚本,并告诉我们如何运用不同的技巧来应对各种即兴时刻.跟随本书的指引,刻意练习即兴演讲技巧,我们就能自如掌控每一个沟通瞬间,获得他人尊重和认可,赢得更多机会,乃至改变

利用预渲染加速iOS设备的图像显示

    最近在做一个UITableView的例子,发现滚动时的性能还不错.但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感. 于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此. 后来在<Improving Image Drawing Performance on iOS>一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多CPU时间:而如果预先在一个bitmap context里画出图像,再缓存这个图像,就能省去这些繁重的工作了. 接着我

Qt可显示基本的图像类型,利用QImage、QPxmap类可以实现图像的显示

Qt可显示基本的图像类型,利用QImage.QPxmap类可以实现图像的显示,并且利用类中的方法可以实现图像的基本操作(缩放.旋转). 1. Qt可显示的图像类型 参考Qt的帮助文档,可支持的类型,即可以直接读取并显示的格式有BMP.GIF.JPG.JPEG.PNG.TIFF.PBM.PGM.PPM.XBM.XPM. 2. Qt用如何显示图像 通常用QLabel显示图像,QLabel类有setPixmap()函数,可以用来显示图像.也可以直接用QPainter画出图像. 如果图像过大,直接用QL

深入GDI图像显示

摘  要:本文首先给出了一种结合了DIB和DDB两种位图优点的图像显示方法,其次对GDI函数的高级应用,如透明位图显示.图像旋转显示.图像镜像显示进行了研究. 关键词:GDI图像显示,特殊GDI函数的应用,透明位图显示,图像几何变换显示 图像信息是人类认识世界的重要知识来源,人类获得的70%以上的信息来自于眼睛摄取的丰富和真切的图像.图像与计算机相结合带给人们近乎神奇的图像艺术.对于程序开发者来说,实现高速的绘图是设计漂亮友好的用户界面的基础和关键所在. 在Win32图像程序设计中,图像显示的方

&#8203;IT 敏捷性:更好的利用能耗监测数据

为物联网而设计,今天的数据中心硬件设备,可以提供有价值的反馈信息,从而使全软件定义的自动化成为可能. 作者:杰夫克劳斯 每年IT部门需要做更多的事情,包括管理越来越多的服务器.智能设备.应用程序和服务等.最终用户不断提高标准,要求更高的性能和更好的响应时间.而与此同时,现代数据中心的一切都在不断发展,而从业人员人数和运营费用预算却保持不变甚至有所减少.数据中心的管理人员及其团队必须不断找寻更智能的工作方法,并减少最大的开支成本.由于能耗成本已日渐成为头等大事,因此找到有效降低电力消耗的方法会是一

图像去雾 利用最小值滤波(待改进)

图像去雾 我的个神啊~ 调了这么久终于阶段性"胜利了" -- 利用最小值滤波正确实现图像去雾. 因为是C语言实现,很多细节都要注意,很砸时间--本来看起来很简单的程序,就是有bug,debug的时间很长了,这也是一种锻炼吧,难得的实战机会.磨C 这把刀这么久了,是该做做具体应用了!刀子是否锋利,要接受考验! 程序很大程度上没有利用OpenCV的一些数据操作的接口,除了图像显示和读取之外,其他的数据处理部分都是自己实现的.这几天的时间全砸进去了~ 暑假哇~时间过的慢点可好~ 由于项目正在

优化-预渲染加速iOS设备的图像显示

    最近在做一个UITableView的例子,发现滚动时的性能还不错.但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感. 于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此. 后来在<Improving Image Drawing Performance on iOS>一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多CPU时间:而如果预先在一个bitmap context里画出图像,再缓存这个图像,就能省去这些繁重的工作了. 接着我