[英]What is the difference between QImage and QPixmap?
我不明白QImage和QPixmap有什么区别,它们似乎提供相同的功能。 我什么时候应该使用QImage?何时应该使用QPixmap?
Qt Labs有一系列很好的文章解释了很多关于Qt图形系统的文章。 本文特别介绍了QImage
与QPixmap
。
以下是通常(并非总是)适用的简短摘要:
QImage
。 QPixmap
。 一个重要的区别是你不能在除主GUI线程之外的任何东西上创建或操作QPixmap
。 但是,您可以在后台线程上创建和操作QImage
实例,然后在将它们传递回GUI线程后进行转换。
在工业环境中很重要:
QPixmap存储在进行显示的视频卡上。 不是QImage。
因此,如果您有运行应用程序的服务器和执行显示的客户端工作站,则在网络使用方面非常重要。
使用Pixmap,Redraw只包含通过网络重新绘制(几个字节)的顺序。
使用QImage,它包括发送整个图像(大约几MB)。
QPixmap是一个“图像对象”,其pixel
表示在您的代码中无关紧要。因此QPixmap的设计和优化是为了在显示屏幕上渲染图像 ,它在使用X11时存储在XServer上,因此在XWindow上绘制QPixmap 要快得多绘制QImages,因为数据已经在服务器上,并且可以使用。
何时使用QPixmap :如果您只想重复绘制现有图像(图标...背景等),请使用QPixmap。
QImage是客户端代码中的“内存中像素阵列”,QImage是针对I / O设计和优化的,用于直接像素访问和操作。
何时使用QImage :如果要使用Qpaint绘制,或操纵图像像素。
QBitmap只是一个方便的QPixmap子类,确保深度为1,它是一个单色(1位深度)像素图。 就像QPixmap一样,QBitmap针对隐式数据共享进行了优化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.