QImage与QPixmap区别_qpixmap和qimage-程序员宅基地

技术标签: Qt  QImage 与 QPixmap区别  

原因:
关于这个话题,我其实本人刚开始在windows下进行Qt开发时,并没有太在意?当突然被问到具体区别时,我突然就懵了。特意整理??

参考网址:
https://www.cnblogs.com/s_agapo/archive/2012/03/14/2395603.html
https://blog.csdn.net/ailinty/article/details/8964431
https://blog.csdn.net/qq_18941425/article/details/79917185
区别:
具体四个区别请参考如上网址。

一、不同平台,依赖、存储不同

QPixmap依赖于硬件,QImage不依赖于硬件。
在X11, Mac 以及 Symbian平台上。
QImage: 因为它是存储在客户端,往QImage上绘图比较快,但显示它则比较慢。QPixmap: 具体实现是依赖于系统的,它是存储在服务器端,往QPixmap上绘图比较慢,但显示它则比较快。但在Windows平台上则是是一样的,因为它们都存储在客户端,并不使用任何的GDI资源,可能看起来并没有多大区别。

目前的Qt会把QPixmap都存储在graphics memory中,这明显是依赖硬件的。因此我们对QPixmap的使用需要格外注意。
那么Qt为什么要这么做呢?很简单,设计之初QPixmap就是用来加速显示的,例如我们在paint的时候用QPixmap就会比用其他类的效果好许多。

二、用处分工不同

QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,QImage主要是为图像I/O、图片访问和像素修改而设计的。
当图片小的情况下,直接用QPixmap进行加载,画图时无所谓,当图片大的时候如果直接用QPixmap进行加载,会占很大的内存,一般一张几十K的图片,用QPixmap加载进来会放大很多倍,所以一般图片大的情况下,用QImage进行加载,然后转乘QPixmap用户绘制。QPixmap绘制效果是最好的。

总结:

对于显示小图片时,可以用QPixmap进行加载,绘画图片。当绘画大图片时候,此时最好实现QImage进行加载,因为QImage本身主要是为图像I/O、图片访问和像素修改而设计的,它可以实现对图片旋转、缩放等。然后通过QPixmap实现绘图。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liunanya/article/details/89684204

智能推荐

解决IDEA启动tomcat时候tomcat catalina log控制台显示乱码_tomcat catakina log乱码-程序员宅基地

文章浏览阅读931次,点赞2次,收藏4次。[转载链接]https://www.cnblogs.com/codezpc/p/12696813.html1.问题如下:2.解决方案:进入tomcat安装目录下的conf目录下的logging.properties文件比如我的路径E:\apache-tomcat-9.0.30\conf\logging.properties修改这个句柄,将原来的UTF-8改成GBK即可1catalina.org.apache.juli.AsyncFileHandler.level = FINE1catalin_tomcat catakina log乱码

Prometheus 一文带你搞懂标签label的作用_prometheus label-程序员宅基地

文章浏览阅读2.2w次,点赞11次,收藏30次。- job_name: 'BJ Linux Server' basic_auth: username: prometheus password: 123456 static_configs: - targets: ['192.168.179.99:9100'] labels: idc: tongniu project: www - job_name: 'Shanghai Linux Server' ..._prometheus label

蓝桥杯之Python算法设计系列(二)_5、编写程序,求三位同学随机两两一组的所有组合。stu = ('a','b','c')-程序员宅基地

文章浏览阅读1.3w次,点赞64次,收藏248次。基础算法案例1.特殊回文数问题描述:左边往右边看,右边往左边看,都是同一个数叫做回文数,比如19291就是一个回文数,那么我们输入一个两位及以上的数字,返回回文数,案例如下:def is_pal(i_): i_s = str(i_) if i_s == i_s[::-1]: return True else: return Falsen=int(input("输入大于10的数:"))i = 10while i < n: _5、编写程序,求三位同学随机两两一组的所有组合。stu = ('a','b','c')

建立一个数组内放五个学生的数据(学号和成绩)。对象数组和对象指针_在主类中创建一个数组,数组中存放5位同学的信息,然后用循环结构遍历数组,输出所有-程序员宅基地

文章浏览阅读2.6k次。实现功能1:输出1,3,5的成员数据实现功能2:用指向对象的指针做函数参数,找出其中成绩最高者的学号并输出不过我想说的主要是主函数中的代码片段,关于指针如何调用类函数。int main(){ Student s[5]={Student("123",70.1),Student("456",60.2),Student("789",80.5),Student("987",90.6),Stude..._在主类中创建一个数组,数组中存放5位同学的信息,然后用循环结构遍历数组,输出所有

YOLOv8 Ultralytics:使用Ultralytics框架进行FastSAM图像分割_yolov8导向环境中ultralytics-程序员宅基地

文章浏览阅读1.4k次,点赞40次,收藏24次。Python、PyTorch、YOLOv8、Ultralytics、FastSAM、图像分割_yolov8导向环境中ultralytics

Gitblit无密码登录_gitbit 漏洞-程序员宅基地

文章浏览阅读3.1k次。登录Windows服务器打开Gitblit安装目录打开authority.cmd选中用户,创建证书设置密码keystore密码默认是gitblit,在defaults.properties里面可以修改成功生成的证书路径为${baseFolder}\data\certs\xxx\xxx.zipWindows环境打开Gitbash,输入ssh-keygen -t rsa ..._gitbit 漏洞

随便推点

ICCV 2023 | R3D3:从多视图像实现动态场景的密集三维重建-程序员宅基地

文章浏览阅读513次。作者:Scentea | 来源:3D视觉工坊在公众号「3D视觉工坊」后台,回复「原论文」即可获取论文pdf。添加微信:dddvisiona,备注:三维重建,拉你入群。文末附行业细分群。R3D3是一种用于密集三维重建和自我运动估计的多摄像头算法,该方法通过迭代地结合多摄像头的几何估计和单目深度细化来实现一致的密集三维重建。R3D3的核心思想是将单目线索与来自多摄像头的空间-时间信息的几何深度估计相..._r3d3: dense 3d reconstruction of dynamic scenes from multiple cameras

@Autowired 和 @Resource的区别只知道注入方式不同?那可不行,其性能上也有差距!_resource autowire-程序员宅基地

文章浏览阅读2.4k次。代码的逻辑:这段代码来自Spring框架的AbstractBeanFactory类中的isFactoryBean方法。这个方法的主要作用是判断指定名称的bean是否是一个FactoryBean。工作原理:获取bean名称:首先,通过transformedBeanName(name)方法获取真正的bean名称。这个方法会去掉名称前面的&字符(如果有的话),因为在Spring中,&字符表示获取FactoryBean本身,而不是FactoryBean创建的对象。_resource autowire

第七届蓝桥杯_方格填数_简单搜索_再填格子 搜索-程序员宅基地

文章浏览阅读945次。填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。我博客里面还有一个方格填数的,那是学长给我们的第一次测试的时候给我们出的题,跟这个一样的图,只是有所修改建议参考下(点这里!嘿嘿)_再填格子 搜索

修改vant 弹窗Dialog组件调用是确认按钮与取消按钮的文字_vue this.$dialog改变组件弹出框确认按钮的字-程序员宅基地

文章浏览阅读6k次。修改vant 弹窗Dialog组件调用是确认按钮与取消按钮的文字_vue this.$dialog改变组件弹出框确认按钮的字

【latex笔记】表格-单元格合并_latex multirow 占据三行 居中-程序员宅基地

文章浏览阅读1k次。使用latex撰写论文过程中,需要使用latex语法图表,终于找到这个函数,做个笔记,自用_latex multirow 占据三行 居中

C++图形开发(1):graphics图形库简介与安装_c语言graphics库怎么安装-程序员宅基地

文章浏览阅读5.6k次,点赞10次,收藏52次。C++图形开发(1):graphics图形库简介与安装_c语言graphics库怎么安装

推荐文章

热门文章

相关标签