QImage和QPixmap有什么区别?
我不明白QImage和QPixmap有什么区别,它们似乎提供了相同的function。 什么时候应该使用QImage,什么时候应该使用QPixmap?
Easily通过阅读QImage和QPixmap上的文档回答:
QPixmap类是可用作绘画设备的屏幕外图像表示。
QImage类提供了独立于硬件的图像表示forms,允许直接访问像素数据,并可用作绘画设备。
编辑:另外,从@戴夫的答案:
您不能在GUI线程之外操作QPixmap,但是QImage没有这样的限制。
从@Arnold:
以下是通常(并非总是)适用的简短摘要:
- 如果你打算操作一个图像,修改它,改变它的像素等,使用QImage。
- 如果您计划在屏幕上多次绘制相同的图像,请将其转换为QPixmap。
一个重要的区别是,除了主GUI线程之外,您不能在任何东西上创build或操作QPixmap
。 但是,您可以在后台线程上创build和操作QImage
实例,然后在将它们传递回GUI线程后将其转换。
Qt实验室提供了一系列很好的文章来解释Qtgraphics系统。 本文特别介绍了QImage
与QPixmap
。
以下是通常(并非总是)适用的简短摘要:
- 如果你打算操作一个图像,修改它,改变它的像素等,使用
QImage
。 - 如果您计划在屏幕上多次绘制相同的图像,请将其转换为
QPixmap
。
在工业环境中重要:
QPixmap存储在显示器上的显卡上。 不是QImage。
所以如果你有一个运行应用程序的服务器和一个显示器的客户站,就networking使用而言,这是非常重要的。
使用Pixmap,重绘包括仅通过networking发送重绘的命令(几个八位字节)。 它包括发送整个图像与一个QImage(几Mo?…)