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

QPixmap:是针对屏幕进行特殊优化的,因此,它与实际的底层显示设备息息相关。注意,这里说的显示设备并不是硬件,而是操作系统提供的原生的绘图引擎

QBitmap:继承自QPixmap,因此具有QPixmap的所有特性,提供单色图像。由于QBitmap色深小,因此只占用很少的存储空间,所以适合做光标文件和笔刷。

QImage:使用独立于硬件的绘制系统,实际上是自己绘制自己,因此提供了像素级别的操作,并且能够在不同系统之上提供一个一致的显示形式QPixmap使用底层平台的绘制系统进行绘制,无法提供像素级别的操作。和QPixmap 不同,QImage是独立于硬件的,它可以同时被另一个线程访问。QImage是存储在客户端的,对QImage的使用是非常方便和安全的。 又由于 QImage 也是一种QPaintDevice,因此我们可以在另一个线程中对其进行绘制,而不需要在GUI 线程中处理,使用这一方式可以很大幅度提高UI响应速度。 因此当图片较大时,我们可以先通过QImage将图片加载进来,然后把图片缩放成需要的尺寸,最后转换成QPixmap 进行显示。 下图是显示效果(图片是按照earth.png的原始尺寸比例缩放后显示的)。

QPicture:是一个可以记录和重现QPainter命令的绘图设备。 QPicture将QPainter的命令序列化到一个IO设备,保存为一个平台独立的文件格式。QPicture文件没有内容上的限制,只要是能够被QPainter绘制的元素,不论是字体还是pixmap,或者是变换,都可以保存进一个picture中QPicture是平台无关的因此它可以使用在多种设备之上,比如svg、pdf、ps、打印机或者屏幕。

以上整理自网络,版权归原来的作者所有,如果有侵权请联系删除,转载请注明版权询问原作者。

你可能感兴趣的:(Qt学习)