QT学习笔记(十三):绘制图像

QT学习笔记(十三):绘制图像

在这里插入图片描述
paintEvent() 事件源码添加:

#include <QPainter>
#include <QImage>
#include <QPixmap>
#include <QBitmap>
#include <QPicture>void Widget::paintEvent(QPaintEvent *)
{QPainter painter;// 绘制imageQImage image(100, 100, QImage::Format_ARGB32);painter.begin(&image);   //  设备设定painter.setPen(QPen(Qt::green, 3));painter.setBrush(Qt::yellow);painter.drawRect(10, 10, 60, 60);painter.drawText(10, 10, 60, 60, Qt::AlignCenter, tr("QImage"));painter.setBrush(QColor(0 , 0, 0, 100));painter.drawRect(50, 50, 40, 40);painter.end();// 绘制pixmapQPixmap pix(100, 100);painter.begin(&pix);painter.setPen(QPen(Qt::green, 3));painter.setBrush(Qt::yellow);painter.drawRect(10, 10, 60, 60);painter.drawText(10, 10, 60, 60, Qt::AlignCenter, tr("QPixmap"));painter.setBrush(QColor(0 , 0, 0, 100));painter.drawRect(50, 50, 40, 40);painter.end();// 绘制bitmapQBitmap bit(100, 100);painter.begin(&bit);painter.setPen(QPen(Qt::green, 3));painter.setBrush(Qt::yellow);painter.drawRect(10, 10, 60, 60);painter.drawText(10, 10, 60, 60, Qt::AlignCenter, tr("QBitmap"));painter.setBrush(QColor(0 , 0, 0, 100));painter.drawRect(50, 50, 40, 40);painter.end();// 绘制pictureQPicture picture;painter.begin(&picture);painter.setPen(QPen(Qt::green, 3));painter.setBrush(Qt::yellow);painter.drawRect(10, 10, 60, 60);painter.drawText(10, 10, 60, 60, Qt::AlignCenter, tr("QPicture"));painter.setBrush(QColor(0 , 0, 0, 100));painter.drawRect(50, 50, 40, 40);painter.end();// 在widget部件上进行绘制painter.begin(this);painter.drawImage(50, 20, image);painter.drawPixmap(200, 20, pix); painter.drawPixmap(50, 170, bit);		// 只有黑白两色,只显示轮廓painter.drawPicture(200, 170, picture);}

结果
在这里插入图片描述
在这里插入图片描述

1.QImage 类

在这里插入图片描述
在这里插入图片描述

#include <QImage>void Widget::paintEvent(QPaintEvent *)
{QPainter painter(this);QImage image;// 加载一张图片image.load("../mydrawing/image.png");// 输出图片的一些信息qDebug() << image.size() << image.format() << image.depth();// 在界面上绘制图片painter.drawImage(QPoint(10, 10), image);// 获取镜像图片(垂直镜像图片)QImage mirror = image.mirrored(false,true);// 将图片进行扭曲QTransform transform;transform.shear(0.2, 0);QImage image2 = mirror.transformed(transform);painter.drawImage(QPoint(10, 160), image2);// 将镜像图片保存到文件image2.save("../mydrawing/mirror.png");
}

结果:
在这里插入图片描述

1.QPixmap 类

在这里插入图片描述

#include <QPixmap>
#include <QDesktopWidget>
#include <QWindow>
#include <QSCreen>
#include <QLabel>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget)
{ui->setupUi(this);QWindow window;// 截取屏幕上 (0,0,500,500) 矩形范围图像QPixmap grab =  window.screen()->grabWindow(QApplication::desktop()->winId(),0,0,500,500);// 储存图片grab.save("../mydrawing/screen.png");// 创建 labelQLabel *label = new QLabel(this);label->resize(400, 200);// 缩放 pix(保证长宽比,平滑转换)QPixmap pix = grab.scaled(label->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);//  添加图片label->setPixmap(pix);label->move(0, 50);
}

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

void Widget::paintEvent(QPaintEvent *)
{QPainter painter(this);QPixmap pix;// 加载图片pix.load("../mydrawing/yafeilinux.png");// 绘制图片,添加不同透明颜色矩形覆盖图形painter.drawPixmap(0, 0, pix.width(), pix.height(), pix);painter.setBrush(QColor(255, 255, 255, 100));painter.drawRect(0, 0, pix.width(), pix.height());// 绘制图片,添加不同透明颜色矩形覆盖图形painter.drawPixmap(100, 0, pix.width(), pix.height(), pix);painter.setBrush(QColor(0, 0, 255, 100));painter.drawRect(100, 0, pix.width(), pix.height());
}

结果:
在这里插入图片描述

3.QPicture 类

在这里插入图片描述

#include <QPicture>QPicture picture;
QPainter painter;
painter.begin(&picture);
painter.setPen(QPen(Qt::green, 3));
painter.setBrush(Qt::yellow);
painter.drawEllipse(10,20,80,70);
painter.end();
painter.begin(this);
painter.drawPicture(0, 0, picture);// 将 drawing.pic 绘图命令序列化到 I/O 设备中
picture.save("../mydrawing/drawing.pic");// 读取并重演 drawing.pic 绘图命令
QPicture picture2;
picture2.load("../mydrawing/drawing.pic");
painter.begin(this);
painter.drawPicture(100,0,picture2);

结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491242.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Robot学院】一文读懂世界智能制造大趋势!

本文来源&#xff1a;智造智库工业4.0在德国被认为是第四次工业革命&#xff0c;主要是指&#xff0c;在“智能工厂”利用“智能设备”将“智能物料”生产成为“智能产品”&#xff0c;整个过程贯穿以“网络协同”&#xff0c;从而提升生产效率&#xff0c;缩短生产周期&#x…

QT学习笔记(十四):QLayout的属性介绍

QT学习笔记&#xff08;十四&#xff09;&#xff1a;QLayout的属性介绍 主要包括QBoxLayout、和QGridLayout以及QFormLayout等的参数类似。 我主要说明一下QGridLayout在QtDesigner中它的属性的意义&#xff0c;以及QFormLayout的部分属性 一、QGridLayout属性介绍 1、QGri…

查找所引用的文献在某种期刊下的引用格式(引用风格)

当我们要引用一篇文献时&#xff0c;常常需要知道这篇文献在某种期刊下的引用格式是怎样的。举个例子&#xff0c;我需要查找“Gradient-based learning applied to document recognition”这篇文献在Neuroimage期刊下的引用格式怎么写。 首先在谷歌学术上搜索“Gradient-base…

web desktop在线演示

http://mydesk.sinaapp.com基于extjs的web desktop应用框架。 1、跨浏览器2、动态载入所需css,js文件3、权限管理4、支持多语种5、支持asp,jsp,php6、Sql server2008数据库QQ: 623076512 Email&#xff1a; mychirs21cn.com 转载于:https://www.cnblogs.com/mengfanrong/p/5…

贝叶斯网络之父:当前的机器学习其实处于因果关系之梯的最低层级

来源&#xff1a;大数据文摘每当提起“无人驾驶”汽车技术如何强大&#xff0c;又被大众赋予了怎样的期待&#xff0c;都会让人想起HBO电视剧Silicon Valley《硅谷》中的一个情节&#xff1a;硅谷大亨风险资本家Gregory的助手安排了一辆无人驾驶汽车送创业公司的小员工Jared回家…

QT学习笔记(十五):QLabel的点击事件(clicked)添加

QT学习笔记&#xff08;十五&#xff09;&#xff1a;QLabel的点击事件&#xff08;clicked&#xff09;添加 Qt之添加QLabel的点击事件 QLabel功能为显示了一个字符串或者图片等信息&#xff0c;它本身没有click信号。也就不能够响应click点击事件&#xff0c;有什么办法来实…

引用文献管理软件Mendeley

Mendeley是一款强大的文献管理软件&#xff0c;只需要把引用的文献导入进去&#xff0c;就可以生成各种风格的文献引用格式 首先去官网下载Mendeley&#xff1a;https://www.mendeley.com/download-desktop/ 安装好&#xff0c;打开后点击add添加文献&#xff1a; 添加文献的方…

​忆阻器会成为“存储墙”的破局者么

来源&#xff1a;半导体行业观察在计算量和数据量变得越来越大的今天&#xff0c;计算和存储成为了下一步科技发展中要面临的两座大山&#xff0c;下一代高性能计算机系统必须突破存储墙问题。在过去&#xff0c;这两者一直都是各自发展&#xff0c;再通过下游产品产生交集。但…

Halcon学习笔记(一):Qt+Halcon联合开发配置

Halcon学习笔记(1)&#xff1a;QtHalcon联合开发配置 首先是新建一个QT项目qtest_hc 方法一&#xff1a; 1)QT项目文件 qtest_hc 添加库&#xff1a; #1.包含目录添加 INCLUDEPATH D:/MVTec/HALCON-13.0/include INCLUDEPATH D:/MVTec/HALCON-13.0/include/halconcpp#2.链…

C1. 组队活动 Small(BNUOJ)

C1. 组队活动 SmallTime Limit: 1000msMemory Limit: 131072KB64-bit integer IO format: %lld Java class name: MainSubmit Status PID: 51280BNU ACM校队一共有名队员&#xff0c;从到标号&#xff0c;现在名队员要组成若干支队伍来相互学习、共同进步&#xff0c;为了…

窥见人工智能四十年 2019 CCF-GAIR全球人工智能与机器人峰会今日开幕

编者按&#xff1a;7月12日-14日&#xff0c;2019年全球人工智能与机器人峰会&#xff08;CCF-GAIR&#xff09;正式开幕&#xff0c;该峰会由中国计算机学会&#xff08;CCF&#xff09;主办&#xff0c;雷锋网、香港中文大学&#xff08;深圳&#xff09;承办&#xff0c;深圳…

神经网络的反向传播推导实例

假设&#xff0c;你有这样一个网络层&#xff1a; 第一层是输入层&#xff0c;包含两个神经元i1&#xff0c;i2&#xff0c;和截距项b1&#xff1b;第二层是隐含层&#xff0c;包含两个神经元h1,h2和截距项b2&#xff0c;第三层是输出o1,o2&#xff0c;每条线上标的wi是层与层之…

AI赌神升级!无惧bluff,6人局德扑完胜世界冠军,训练只用了8天

大数据文摘出品2017年年初&#xff0c;Brain vs AI的德州扑克人机大战在卡耐基梅隆大学(CMU)落幕&#xff0c;由4名人类职业玩家组成的人类大脑不敌人工智能程序Libratus。获胜后人类还遭到了Libratus的无情嘲讽。但是那时候Libratus还只是个只能在1V1局里称霸的超级玩家&#…

pytorch报错RuntimeError: error in LoadLibraryA

这是因为腾讯管家把某个文件当成病毒删除了&#xff0c;恢复该文件即可 恢复腾讯管家杀毒误删文件方法&#xff1a; https://jingyan.baidu.com/article/6766299763dab854d41b8457.html

OpenCV示例学习(二): 基本图形绘制算子:line(),circle(),fillPoly(), ellipse()

OpenCV示例学习&#xff08;二&#xff09;&#xff1a; 基本图形绘制算子&#xff1a;line(),circle(),fillPoly(), ellipse() #include <opencv2/opencv.hpp>using namespace cv;#define WINDOW_NAME1 "【绘制图1】" //为窗口标题定义的宏 #define W…

动荡的 2019:数据和 AI 生态圈

来源&#xff1a;云头条这是数据领域又一个激烈动荡的年头&#xff0c;令人兴奋&#xff0c;但又错综复杂。随着越来越多的人上网&#xff0c;一切继续在加快“数据化”的步伐。这个大趋势的发展势头越来越猛&#xff0c;归因于基础设施、云计算、AI和开源各个领域取得的进步的…

无线通信界的3大天王,谁能驾驭百亿台IoT设备?

来源&#xff1a;物联网智库导 读数量爆发式增长的背后&#xff0c;Wi-Fi、蓝牙、Zigbee三大无线连接技术正上演一场“争霸赛”。本文通过对三项技术的详细对比&#xff0c;以分析三项技术在具体应用场景中的优劣势。根据前瞻产业研究院发布的《2018—2023年中国物联网行业细分…

腾讯张正友:计算机视觉的三生三世

本文转载自&#xff1a;腾讯AI实验室本文将介绍腾讯 AI Lab & Robotics X 主任张正友博士在 CCF-GAIR 2019 大会上所做的报告&#xff0c;讲述计算机视觉研究的历史和未来。7 月 12 日-7 月 14 日&#xff0c;2019 第四届全球人工智能与机器人峰会&#xff08;CCF-GAIR 201…

未来50亿年科学预测

来源&#xff1a;宇宙解码近期未来史现今——公元2500年公元2020年 三维全息电视将进入生活&#xff0c;人们可以通过付费点播观看。公元2025年 氢燃料电池技术将给交通运输领域带来革命&#xff0c;氢燃料电池汽车将开始中批量生产。餐桌上会出现具有肉类营养特征的植物。培养…

OpenCV学习笔记(二):3种常用访问图像中像素的方式

OpenCV学习笔记&#xff08;二&#xff09;&#xff1a;3种常用访问图像中像素的方式 #include <opencv2/opencv.hpp>using namespace cv; using namespace std;int main() {//【1】创建原始图并显示Mat srcImage imread("F:/C/2. OPENCV 3.1.0/TEST/11.jpg"…