Qt提供了四个处理图像数据的类: QImage、QPixmap、QBitmap 和QPicture.。
因为QImage是一个 QPaintDevice 子类,所以 QPainter也可以用来直接它,在QImage上使用QPainter时,绘制可以在当前GUI线程以外的其他线程中执行。
QImage类支持Format中描述的多种图像格式,包括单色、8位、32位和alpha混合图像。
QImage提供了一组函数用于获取图像信息,还可以支持对图像的变换操作。
QImage对象可以通过值传递,因为QImage类使用隐式数据共享。
QImage对象也可以进行流媒体处理和比较。
隐式数据共享是C++特性,用来提高资源使用效率并减少数据复制。
当这些类作为参数传递时,只传递一个指向数据的指针,只有当函数写入数据时才会被真正复制。
警告:不支持在具有 QImage::Format_Indexed8格式的QImage上进行绘制。
阅读和编写图像文件
QImage加载图像文件的方法:
- 文件可以在构建QImage对象时加载。
- 构建后使用 load()或loadFromData()函数加载。
QImage还提供了静态函数fromData(),从给定的数据构造一个QImage。
加载图像时,文件名可以引用磁盘上的实际文件,也可以引用应用程序的嵌入资源。(参阅Qt资源系统The Qt Resource System)
调用 save() 函数可以保存一个QImage对象。
可以