QPicture类

QT 之绘图进阶: 图片绘图类QPixmap、QImage、QPicture 绘图设备是指继承 QPaintDevice 的子类,你可以使用 QPainter 直接在其上面绘制图形,Qt 一共提供了四个这样继承 QPaintDevice 的绘图设备类,分别是:QPixmap、QBitmap、QImage和 QPicture。QPixmap专门为图像在屏幕上的显示做了优化;QBitmap是 QPixmap 的一个子类,它的色深限定为 1,你可以使用 QPixmap 的 isQBitmap() 函数来确定这个QPixmap 是不是一个 QBitmap; 阅读详情

 

QPicture类是一个记录和回放QPainter命令的绘制设备。 

Header:#include <QPicture>
CMake:find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake:QT += gui
Inherits:<<< QPaintDevice

【详细描述】

一张图片会以独立于平台的格式将 painter 命令序列化到 IO 设备上。它们有时被称为元文件。

Qt 图片使用一种专有的二进制格式,这与许多窗口系统上的原生图片(元文件)格式不同,Qt图片对其内容没有限制,可以在控件或像素图上绘制一切(例如: fonts, pixmaps, regions, transformed等),也可以存储在一张图片中。
 

QPicture与分辨率无关。一个QPicture可以显示在不同的设备上(例如svg、pdf、ps、打印机和屏幕),看起来都相同,这正是所见即所得的打印预览所必须的。QPicture在默认系统dpi中运行,并根据窗口系统缩放 painter 以匹配分辨率的差异。

  • 以下是记录图片的示例:
QPicture picture;
QPainter painter;
painter.begin(&picture);           // paint in picture
painter.drawEllipse(10,20, 80,70); // draw an ellipse
painter.end();                     // painting done
picture.save("drawing.pic");       // save picture

 请注意,在每次调用QPainter::begin() 函数时, painter 命令的列表都会被重置。

  • 重播图片的示例:
QPicture picture;
picture.load("drawing.pic");           // load picture
QPainter painter;
painter.begin(&myImage);               // paint in myImage
painter.drawPicture(0, 0, picture);    // draw the picture at (0,0)
painter.end();                         // painting done

图片也可以使用play()来绘制。一些关于图片的基本数据可用size(), isNull() and boundingRect()访问。


【公有函数】

QPicture::QPicture(int formatVersion = -1)

构造空图片。

格式版本参数可用于创建一个由使用Qt的早期版本编译的应用程序可以读取的Q图片。

默认格式版本是-1,它表示当前版本。

QPicture::QPicture(const QPicture &pic)

构造一个图片的副本。

由于隐式共享,这个构造函数非常快。

virtual  QPicture::~QPicture()

QRect

boundingRect() const

返回图片的边界矩形,如果图片不包含数据,则返回一个无效的矩形。
const char *

data() const

返回一个指向图片数据的指针。该指针只有在在这张图上调用下一个非常量函数之前才有效。如果图片中不包含任何数据,则返回的指针为0。
bool

isNull() const

如果图片不包含任何数据,则返回true;否则返回false。
bool

load(const QString &fileName)

从文件名指定的文件中加载图片,如果成功则返回true;否则将使图片无效并返回false。
bool

load(QIODevice *dev)

重载load函数,这里dev是用于加载的设备。
bool

play(QPainter *painter)

 使用Painter回放图片,如果成功则返回true;否则返回false。

这个函数与QPainter::drawPicture() 和 (x, y) = (0, 0) 完全相同。

注意:Painter的状态并没有被这个功能保存下来。

bool

save(const QString &fileName)

将图片保存到文件名指定的文件中,成功后返回true,否则返回false。
bool

save(QIODevice *dev)

重载save函数,这里dev是用于保存的设备。
void

setBoundingRect(const QRect &r)

将图片的边界矩形设置为r,这将覆盖自动计算的值。
virtual void

setData(const char *data, uint size)

直接设置图片尺寸。此函数将复制输入数据。
uint

size() const

返回图片数据的大小。
void

swap(QPicture &other)

用这张照片交换其他图片。这个操作非常快,而且永远不会失败。
QPicture &operator=(const QPicture &p)
QPicture &operator=(QPicture &&other)

QDataStream &operator<<(QDataStream &s, const QPicture &r)
QDataStream &operator>>(QDataStream &s, QPicture &r)

<<<返回上一级【QPaintDevice】

<<<返回根页面 

Qt学习---QPicture理解 QPicture是一个可以记录和重现QPainter命令的绘图设备,使用步骤如下:1、QPainter::begin()函数将QPicture作为参数传递进去;2、开始记录绘图命令;3、QPainter::end()函数结束记录。如: 1、在构造函数中进行记录操作:QtStudy29::QtStudy29(QWidget *parent, Qt::WFlags flags) : QMainWin... 阅读详情

相关推荐

QT的QPicture类的使用

详细说明 QPicture类是一种绘画设备,可以记录和重放QPainter命令。 图片以平台无关的格式将Painter命令序列化到IO设备。它们有时被称为元文件。 Qt图片使用专有的二进制格式。与许多窗口系统上的本机图片(元文件)格式不同,Qt图片对其内容没有任何限制。可以在小部件或像素图上绘制的所有内容(例如,字体,像素图,区域,变换的图形等)也可以存储在图片中。 QPicture与分辨率无关,即QPicture可以在看起来相同的不同设备(例如svg,pdf,ps,打印机和屏幕)上显示。例如,所见即所得的

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1308

qt QPicture详解

QPicture类是Qt框架中的一个重要图形类,它主要用于记录和回放QPainter的绘图指令。这个类能够跨平台、无分辨率依赖地绘制图形,非常适合用于实现打印预览和图像操作等场景。QPicture可以将绘图操作序列化为一种独立于平台的格式,保存在IO设备上,这些被序列化的绘图指令有时也被称为元文件。Qt使用一种专有的二进制格式来存储这些元文件,与许多窗口系统上的原生图片格式不同,Qt对其内容没有限制,允许在控件或像素图上绘制各种元素,如字体、位图、区域、变换等,并将它们存储在同一张图片中。

ckg3824278的博客 646

Qt中QPicture类的使用

然后,我们使用QPainter绘制了一条直线,并在结束绘制后,将它存储到了QPicture中。为此,您可以将QPicture对象写入文件,以便后续读取。在Qt中,QPicture类被用来表示一个图像对象,该对象可以进行序列化以及反序列化,从而可以方便地保存和加载。总之,QPicture类是一个非常有用的Qt类,它可以帮助您保存并重用绘图操作。如果您需要绘制一些简单的图形,那么QPicture类可能是一个不错的选择。通过这种方式,您可以在多个程序之间共享QPicture对象,并避免反复绘制相同的元素。

PixelProX的博客 313

QGraphicsItem的setClipRect 和 boundingRect函数

setClip(true) 用于启用裁剪功能,而 setClipRect() 用于设置具体的裁剪区域。现在,当你调用 setClipRect() 时,如果裁剪区域是有效的(即不是空的并且与项目的边界框有交集),裁剪功能会自动启用,即使你之前没有显式调用 setClip(true)。总结来说,虽然从 Qt 5 开始,调用 setClipRect() 时裁剪功能可能会自动启用,但显式地先调用 setClip(true) 再设置裁剪区域是一个好的编程习惯,可以确保裁剪功能被正确启用,并且代码意图更加明确。

qq_41354600的博客 1946

QT的QPicture类的使用 编程

通过QPicture类,我们可以方便地保存和重新加载绘图操作,实现图形的序列化和反序列化。QPicture类是Qt框架中的一个图形类,用于在内存中保存绘图操作,可以将绘图操作序列化到文件中或者在需要时重新绘制。在上述代码中,我们首先打开之前保存的文件,并创建一个QDataStream对象in,并将其与文件关联。在上述代码中,我们创建了一个QPicture对象picture,并创建了一个QPainter对象painter,并通过。接下来,我们可以将绘图操作序列化到文件中,以便在需要时重新加载和绘制。

2301_79325339的博客 243

【Qt开发】详解QPicture类:绘图记录与重放工具的最佳实践、实战应用、示例代码

QPicture 提供了一个强大的工具来记录和重放绘图命令。本文详细介绍了 QPicture 的基本功能、常用方法、以及高级应用技巧,并通过实例代码展示了如何使用该类进行绘图记录与重放。通过这些介绍,读者可以更好地掌握和利用 QPicture 进行高效的绘图操作管理。对于有特殊需求的开发者,也可以通过探索更多高级设置和优化策略,以满足具体的应用场景。

科技改变人类,技术成就未来 1365

QPicture功能方法(5.12)

//for starf study #include "mainwindow.h" #include "ui_mainwindow.h" #include<QDebug> #include<QPainter> #include<QPicture> //QPicture类是一种绘画设备,用于记录和重放QPaint命令。 /* QPicture picture; QPainter painter; painter..

For_1ove的博客 471

【QT开发】图像记录控件QPicture类详解及实战应用

QPicture是Qt提供的一个功能强大且灵活的图像记录控件,通过本篇文章的学习,你应该对QPicture有了全面的理解,能够在自己的项目中正确使用它。QPicture在用户界面中帮助你更好地记录和重放绘图操作,有助于创建用户友好和高效的界面。

科技改变人类,技术成就未来 993

「QT」图形图像类 之 QPicture重要图形类

QPicture类提供了多种构造函数,用于创建QPicture对象。QPicture():构造一个空的QPicture对象。:构造一个指定格式版本的QPicture对象。格式版本参数可用于创建一个由使用Qt的早期版本编译的应用程序可以读取的QPicture。默认格式版本是-1,它表示当前版本。:构造一个QPicture对象的副本。由于隐式共享,这个构造函数非常快。QPicture类提供了一系列公有函数,用于处理图片数据。:从文件加载QPicture对象。:将QPicture对象保存到文件。

何曾参静谧的博客 817

yersinia -G打不开图形化界面解决方案(曲线救国,实操可行)

附Kali 2021 VMware懒人版,已完成汉化,更新源,并已经安装yersinia。ping 114.114.114.114也不通,接着ifconfig发现 IP地址有的,然后手动配置了IP地址,发现还是Ping不通114.11.4.114.114,然后输入。更新源后,报错源无法解析,同时ping www.baidu.com也不通,那可能是DNS存在问题,更新一下DNS服务器。百度找了很久,有个回答比较接近,但一一尝试了几遍,还是无解,解决不了呀!•(2)Yersinia编译的时候,要选择gtk。

weilandeyongheng的专栏 4170

技术文档的语言表达:简洁、准确与易懂的平衡艺术

技术文档的语言表达不仅要简洁、准确,还需要能够打破技术壁垒,使不同背景的读者都能理解。这是一项需要技巧和经验的工作,它要求技术作者既要具备扎实的专业知识,又要具备清晰的表达能力。通过不断打磨语言的简洁性、准确性和易懂性,我们能够创造出一份高质量的技术文档,让知识的传递不再受限于语言的障碍。

人心有反复,好在山水有重逢。 4677

QT绘图类 QPixmap、QImage、QPicture、QBitmap

前言绘图设备是指继承 QPaintDevice 的子类,你可以使用 QPainter 直接在其上面绘制图形,Qt 一共提供了四个这样继承 QPaintDevice 的绘图设备类,分别是:QPixmap、QBitmap、QImage和 QPicture。

m0_63893772的博客 1497

杰理蓝牙AC696X开发实战:自定义蓝牙名称与提示音配置指南

本文详细介绍了杰理AC696X蓝牙芯片开发中自定义蓝牙名称与提示音配置的完整实战指南。文章从SDK工具定位入手,逐步讲解如何通过配置工具修改蓝牙名称,并重点阐述了替换提示音的正确步骤与音频文件(如WAV格式、16kHz采样率)的详细参数要求,最后指导如何生成并验证最终固件,帮助开发者快速实现个性化设备定制。

weixin_29161719的博客 560

QImage、QPixmap、QBitmap、QPicture 四个类

QImage是设计并优化来为 I/O操作的,可以直接访问和操作像素,而QPixmap是设计并优化来在屏幕上显示图片的。QBitmap仅是继承自QPixmap的一个方便使用的类,是为了确保图片的深度为1.QPicture是绘图设备,可以用来重现QPainte。   1、一个简单的图片显示程序(以下仅是部分程序段,相信大家会看明白) QPixmap pixmap( "image.jp

Swimmy_GY的博客 849

基于FPGA的ov5640摄像头简易图像采集装置详解

本文介绍一种基于FPGA的,通过流模式DDR实现OV5640摄像头数据采集并显示的方法。

qq_42230252的博客 1万+

每天一个优秀提示词学习收藏 - 文本创作篇(二)

宝子们,今天不藏私啦!我把这段时间四处搜罗、潜心钻研出来的文本创作 Prompt 提示词大礼包双手奉上,这可都是能让你的 AI 创作水平原地起飞的干货!走过路过不要错过,赶紧码住,开启你的 AI 创作进阶之旅吧!

2401

Qt 处理图像数据的类区别(QPixmap、QImage、QPicture)

Qt提供了处理图像数据的类:QImage, QPixmap和QPicture。QImage类提供了一个独立于硬件的图像表示,它允许直接访问像素数据,并且可以用作绘制设备;适合加载大图片;可以在线程中绘图,可以优化UI响应时间。绘制图片出来的效果和平台无关,QImage上绘图比较快,但显示它则比较慢。绘制图片: 绘制大图:可以用QImage先把图片加载进来,改变大小,转成QPixmap。 2.QPixmap QPixmap绘图依赖硬件,QPixmap的设计本来就是用来加速显示,用paint绘图时用Q

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 2864

VS2022打包C#安装包(最新、最全)

VS2022打包C#安装包(最新、最全)

qq_37959253的博客 9901

QT的绘图类 QImage /QPixmap/QPicture

绘图设备是指继承QPaintDevice的子类,你可以使用QPainter直接在其上面绘制图形,Qt一共提供了四个这样继承QPaintDevice的绘图设备类,分别是QPixmap、QBitmap、QImage和 QPicture。其中: QPixmap专门为图像在屏幕上的显示做了优化; QBitmap是QPixmap的一个子类,它的色深限定为1,你可以使用 QPixmap的isQBitmap...

Mario_z的博客 910

详解AUTOSAR:专栏总述

本专栏系统介绍AUTOSAR规范及车用控制器软件开发,内容覆盖基础架构、SWC/RTE、通信栈、诊断、存储、安全、看门狗、工具链、环境配置与项目实战,并持续更新各模块的集成机制与工程要点。

不脱发的程序猿 3924

RK3588 hdmiout调试(一)

RK3588 hdmiout调试(一)

目前从事linux驱动开发,多交流多学习吧 5170

Qt图片绘图类QPixmap、QImage、QPicture

Qt图片绘图类QPixmap、QImage、QPicture

m0_60259116的博客 2445

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Qt提供的四个处理图像的类,Qimagae,QPixmap,QBitmap,QPicture

用的最多的应该就是QImage和QPixmap, QImage主要在I/O和直接的像素级访问和操作上做了优化设计。 而QPixmap则主要用于在屏幕上显示,作为QPainter的绘图工具,在上面绘制图形。 另外两个,QBitmap 是QPixmap的子类,对QPixmap的一些操作进行了封装,只能存储黑白图像。 QPicture 是一个记录和重现QPainter命令的绘图设备。 下面主要说QPixmap和QImage。 1 一个QPixmap对象可以用QLabel的pixmap属性或button对象(Q

amu1550的专栏 801

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Qt 图片绘图类 QPixmap、QImage、QPicture

绘图设备是指继承 QPaintDevice 的子类,你可以使用 QPainter 直接在其上面绘制图形,Qt 一共提供了四个这样继承 QPaintDevice 的绘图设备类,分别是:QPixmap、QBitmap、QImage和 QPicture。QPixmapQBitmapQImageQPicture下面我们将分两部分介绍这四种绘图设备。

m0_73482095的博客 1102

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

图片绘图类QPixmap、QImage、QPicture

QPixmap也可以接受一个字符串作为一个文件的路径来显示这个文件,比如你想在程序之中打开png、jpeg之类的文件,就可以使用 QPixmap。注意,这里说的显示设备并不是硬件,而是操作系统提供的原生的绘图引擎。2.QBitmap是QPixmap的一个子类,它的色深限定为1,可以使用 QPixmap的isQBitmap()函数来确定这个QPixmap是不是一个QBitmap。则是使用独立于硬件的绘制系统,实际上是自己绘制自己,因此提供了像素级别的操作,并且能够在不同系统之上提供一个一致的显示形式。

qq_43470534的博客 510

qt 四个图像类QImage、QPixmap、QBitmap和QPicture

QPixmap:是针对屏幕进行特殊优化的,因此,它与实际的底层显示设备息息相关。注意,这里说的显示设备并不是硬件,而是操作系统提供的原生的绘图引擎。 QBitmap:继承自QPixmap,因此具有QPixmap的所有特性,提供单色图像。由于QBitmap色深小,因此只占用很少的存储空间,所以适合做光标文件和笔刷。 QImage:使用独立于硬件的绘制系统,实际上是自己绘制自己,因此提供了像素级别的操作,并且能够在不同系统之上提供一个一致的显示形式。QPixmap使用底层平台的绘制系统进行绘制,无法提供像素

lxj362343的博客 990
上一篇: QAbstractButton类
下一篇: QPainter类
floatbit
博客等级 码龄24年 460粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值