qml学习--------------利用Canvas绘制图片
来源:互联网 发布:java麻将游戏代码算法 编辑:程序博客网 时间:2024/04/30 03:31
Context2D中有三种不同的方式来绘制图片,其中的image可以是一个image元素,一个图片URL,或者是CanvasImageData。
import QtQuick 2.2Rectangle{ width: 480; height: 400; id: root; //绘制一个随机像素的图片 Canvas{ id: randomImageData; width: 120; height: 100; contextType: "2d"; property var imageData: null; onPaint: { if(imageData == null){ imageData = context.createImageData(120 , 100); for(var i = 0 ; i < 48000 ; i += 4){ imageData.data[i] = Math.floor(Math.random() *255); imageData.data[i + 1] = Math.floor(Math.random() *255); imageData.data[i + 2] = Math.floor(Math.random() *255); imageData.data[i + 3] = Math.floor(Math.random() *255); } } context.drawImage(imageData , 0 , 0 ); } } //绘制一个和本地颜色相同的图片 Canvas{ id: imageCanvas; property var poster: "icon.jpg"; anchors.left: parent.left; anchors.top: randomImageData.bottom; anchors.topMargin: 20; width: 200; height: 230; onPaint: { var ctx = getContext("2d"); ctx.drawImage(poster , 0 ,0, width , height); } Component.onCompleted: loadImage(poster); onImageLoaded: { requestPaint(); negative.setImageData(getContext("2d").createImageData(poster)); } } //利用CanvasImageData绘图,并将图片颜色反转 Canvas{ id: negative; anchors.left: imageCanvas.right; anchors.leftMargin: 10; anchors.top: imageCanvas.top; width: 200; height: 230; contextType: "2d"; property var imageData: null; onPaint: { if(imageData != null){ context.drawImage(imageData , 0 ,0 , width , height); } } function setImageData(data){ imageData = data; var limit = data.width *data.height * 4; for(var i = 0 ; i < limit ; i+= 4 ){ imageData.data[i] = 255 - data.data[i]; imageData.data[i + 1] = 255 - data.data[i + 1]; imageData.data[i + 2] = 255 - data.data[i + 2]; imageData.data[i + 3] = data.data[i + 3]; } requestPaint(); } }}
0 0
- qml学习--------------利用Canvas绘制图片
- qml学习--------------利用Canvas绘制简单图形
- qml学习---------------利用Canvas绘制文本
- 利用canvas绘制钟表
- 利用HTML5d的Canvas绘制签名区域,保存为图片
- canvas 绘制图片
- canvas 绘制半透明图片
- canvas绘制图片详解
- Canvas绘制图片模糊
- Canvas绘制图片
- canvas学习绘制图片和添加图片等等一
- html5学习笔记二:利用canvas绘制简单图形
- 利用Canvas绘制雷达图
- Canvas学习:绘制线段
- Canvas学习:绘制矩形
- 使用html5 canvas绘制图片
- 【HTML】Canvas(3)-绘制图片
- canvas中绘制图片居中
- Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结
- UIActivityIndicatorView的使用
- Apache 无法正常启动问题
- /ML /MD 等编译选项区别
- hdu 1576 A/B||hdu 3049 Data Processing 乘法逆元
- qml学习--------------利用Canvas绘制图片
- 黑马程序员----C语言学习笔记之循环结构介绍和用法举例
- 遍历Element自定义属性
- Love is 0,0 is start!
- Java异常
- android 基于ListView和CheckBox实现多选和全选记录的功能(转)
- js中可以改变作用域的三中方式(改变this)
- Qt中Ui名字空间以及setupUi函数的原理和实现
- 图片缩放、上传图片改变大小