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

最新文章

  1. View动画和属性动画
  2. java学习总结
  3. SSM框架学习之高并发秒杀业务--笔记2-- DAO层
  4. MapReduce使用JobControl管理实例
  5. vim 学习日志(3):跳到行尾、行首、文件尾、文件首、加密
  6. 30天轻松学习javaweb_tomcat的虚拟目录设置
  7. C++ Bit Fields
  8. ping命令的用法大全!
  9. Specular light 计算
  10. 用Python和Django实现多用户博客系统(二)——UUBlog
  11. js 中对象--属性相关操作
  12. C# trace debug TraceListener调试信息详解
  13. RUBY,玩玩~~~
  14. hdfs经常使用命令
  15. poj1562 DFS入门
  16. VBS脚本病毒特点及如何防范3(转)
  17. 在WPF中使用PlaneProjection模拟动态3D效果
  18. 实战web前端之:Bootstrap框架windows下安装与使用
  19. Java Web开发模式
  20. Java学习之路-Hessian学习

热门文章

  1. 利用SQL语句重置数据库中所有表的标识列(自增量)
  2. Linux中more和less命令用法(转)
  3. 【划分树+二分】HDU 4417 Super Mario
  4. oracle中如何设置主键并且让其自动增长
  5. C#:数据库操作(待补充)
  6. 峰值因子,峰均比,Reference Level
  7. cordova添加Splash
  8. nexus 配置
  9. char类型到底是有符号还是无符号
  10. mysql 开启慢查询 如何打开mysql的慢查询日志记录