此文基于翻译自QT的帮助文档
Qt提供四个处理图像的类,Qimagae,QPixmap,QBitmap,QPicture。
用的最多的应该就是QImage和QPixmap,
QImage主要在I/O和直接的像素级访问和操作上做了优化设计。如果要对图像进行像素级别的修改,就要用QImge,否则已被的图像加载,翻转,缩放等操作,就用QPixmap
而QPixmap则主要用于在屏幕上显示,作为QPainter的绘图工具,在上面绘制图形。
另外两个,QBitmap 是QPixmap的子类,对QPixmap的一些操作进行了封装,只能存储黑白图像。
QPicture 是一个记录和重现QPainter命令的绘图设备。
下面主要说QPixmap和QImage。
1 一个QPixmap对象可以用QLabel的pixmap属性或button对象(QPushButton,QToolButton的icon属性显示。
2 QPixmap是QPaintDevice的子类,可以用QPainter在上面直接绘图。
3 QPixmap里的像素数据只能通过两种方式访问,一是QPainter的方法,二是转为QImage对象访问。
只用QImage类的toImage方法或fromImage方法可以实现两种对象的互相转换,或者直接用QBitmap 的静态方法: QBitmap::fromImage() 转为QBitmap。
4 QImage经常用来加载图片文件,可以在转为QPixmap显示到屏幕上之前对其进行处理。当然,如果根本不需要修改图像数据,可以直接用QPixmap加载图片文件。