有兴趣的开发人员能够參阅连接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的原图为:

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="200" height="300" alt="">  

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

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

  1. UFLDL教程之(三)PCA and Whitening exercise

    Exercise:PCA and Whitening 第0步:数据准备 UFLDL下载的文件中,包含数据集IMAGES_RAW,它是一个512*512*10的矩阵,也就是10幅512*512的图像 ( ...

  2. Java应用发布后,需要关注的7个性能指标

    在某个重大发布之后,都需要记录相应的指标,本文介绍了最重要的几个 Java 性能指标,包括响应时间和平均负载等.为理解应用程序在生产环境中如何运行,就需要遵循一些 Java 性能指标. 在以前,当软件 ...

  3. Java 应用发布后,需要关注的7个性能指标

    在某个重大发布之后,都需要记录相应的指标,本文介绍了最重要的几个 Java 性能指标,包括响应时间和平均负载等.为理解应用程序在生产环境中如何运行,就需要遵循一些 Java 性能指标. 在以前,当软件 ...

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

    组名 对我们组的建议 我组回复 (1)跑男 你们的导航前期要做到什么样的程度呢?其实我一直是很期待你们完成时我能够用你们的导航来感受一下咱们铁大校园风情.你们用了数据结构算法来找最短路径,那你们能不能 ...

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

    最近在做一个UITableView的例子,发现滚动时的性能还不错.但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感.于是我猜想显示过的图像肯定是被缓存起来了,查了下文档后发 ...

  6. 深入GDI图像显示

    摘  要:本文首先给出了一种结合了DIB和DDB两种位图优点的图像显示方法,其次对GDI函数的高级应用,如透明位图显示.图像旋转显示.图像镜像显示进行了研究. 关键词:GDI图像显示,特殊GDI函数的 ...

  7. 基于FPGA的OLED真彩色动态图像显示的实现

    源:基于FPGA的OLED真彩色动态图像显示的实现 作为第3代显示器,有机电致发光器件(Organic Light Emitting Diode,OLED)由于其主动发光.响应快.高亮度.全视角.直流 ...

  8. C#图像显示实现拖拽、锚点缩放功能【转】

    1.图像拖拽 核心步骤: ①新建Point类型全局变量mouseDownPoint,记录拖拽过程中鼠标位置: ②MouseDown事件记录Cursor位置: ③MouseMove事件计算移动矢量,并更 ...

  9. c# 利用AForge和百度AI开发实时人脸识别

    baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是 ...

随机推荐

  1. sql删除数据库所有表

    use 数据库名(是要删除表的所在的那个数据库的名称) GO ) begin SELECT @sql='drop table ' + name FROM sysobjects WHERE (type ...

  2. 【Linux】nl命令

    用途 nl主要用于输出行号,但是与cat -n不太一样的是,可以自定义输出行号的样式 全称 nl的全称为:Number of Lines 参数 -b :指定行号指定的方式,主要有2种: -b a :表 ...

  3. JAVA实现zip压缩需要注意的问题

    近来对院社二维码平台进行2.0升级改造.于昨日踩到一个巨坑.特此记录... 需求源于院社编辑在批量下载二维码的时候,系统后台需要对所要下载的二维码进行重命名和zip打包压缩. 系统测试的时候发现:首次 ...

  4. session 防止表单重复提交

    防止表单重复提交应该现在前台做一遍,再在后台做一遍.这样双重安全而且减轻服务器负担. 代码: package flying.form; import java.io.IOException; impo ...

  5. web站点,同一个浏览器只能登陆一个用户的原因(cookie不能跨浏览器)

    我的web站点,比如  http://ip/testsite/default.aspx, 当我在我的机器上,用chrome打开,用账号user1登陆,那么当我再新开个tab,再打开这个web站点,这时 ...

  6. android中RecycleView分页原生代码封装,无任何第三方代

    概述 RecycleView分页加载封装,简单方便,功能齐全 详细 代码下载:http://www.demodashi.com/demo/13283.html 一.场景: 在项目开发中经常使用到列表集 ...

  7. Android高效异步图片加载框架

    概述 Android高效异步图片加载框架:一个高效的异步加载显示的图片加载框架,同时具备图片压缩,缓存机制等特性. 详细 代码下载:http://www.demodashi.com/demo/1214 ...

  8. Linux-软件包管理-yum在线管理-yum命令

    yum list 查看所有可用软件包列表 vim /etc/yum.repos.d/CentOS-Base.repo 查看当前linux系统默认的网络yum源信息 yum search httpd 搜 ...

  9. C#USB录像视频拍照-代码

    论坛帖:http://bbs.csdn.net/topics/390536016 using System; using System.Collections.Generic; using Syste ...

  10. C#:XML操作(简单)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...