我不明白QImage和QPixmap有什么区别,它们似乎提供了相同的功能。什么时候应该使用QImage?什么时候应该使用QPixmap?
我不明白QImage和QPixmap有什么区别,它们似乎提供了相同的功能。什么时候应该使用QImage?什么时候应该使用QPixmap?
Answers:
一个重要的区别是,QPixmap
除了主GUI线程外,您无法在其他任何对象上创建或操作。但是,您可以QImage
在后台线程上创建和操作实例,然后在将实例传递回GUI线程后对其进行转换。
QPixmap
是一个“图像对象”,其pixel
表示形式与您的代码无关,因此QPixmap是为在显示屏幕上呈现图像而设计和优化的,在使用X11时将其存储在XServer上,因此在XWindow上绘制QPixmap比在绘制时快得多。 QImages,因为数据已经在服务器上,可以使用了。
何时使用QPixmap:如果您只是想反复绘制现有图像(图标..背景..等),请使用QPixmap。
QImage是客户端代码的“内存中的像素数组” ,QImage是针对I / O以及直接像素访问和操纵而设计和优化的。
何时使用QImage:如果要绘制,请使用Qpaint或操纵图像像素。
QBitmap只是一个方便的QPixmap子类,它确保深度为1,即单色(1位深度)像素图。就像QPixmap一样,QBitmap已针对使用隐式数据共享进行了优化。