当前位置: 代码迷 >> 综合 >> QT四个类来处理图像类:QImage、QPixmap、QBitmap和QPicture的区别
  详细解决方案

QT四个类来处理图像类:QImage、QPixmap、QBitmap和QPicture的区别

热度:52   发布时间:2023-12-25 11:32:27.0

Qt提供了四个类来处理图像数据:QImage、QPixmap、QBitmap和QPicture

概念
QImage针对I/O和直接像素访问和操作进行设计和优化;
QPixmap针对在屏幕上显示图像进行设计和优化;
QBitmap只是一个继承QPixmap的方便类,确保深度为1。如果QPixmap对象确实是位图,则isQBitmap()函数返回true,否则返回false,提供单色图像;
QPicture类是一个记录和回放QPainter命令的绘制设备。

QPixmap显示问题
使用QLabel或QAbstractButton的一个子类(如QPushButton和QToolButton)可以很容易地在屏幕上显示QPixmap。QLabel有一个pixmap属性,而QAbstractButton有一个icon属性。
由于QPixmap类使用隐式数据共享,所以可以通过值来传递QPixmap对象。

QImage和QPixmap区别
注意,像素图中的像素数据是内部的,由底层窗口系统管理。因为QPixmap是QPaintDevice的子类,所以可以使用QPainter直接在pixmaps上绘图。像素只能通过QPainter函数或将QPixmap转换为QImage来访问。不过,fill()函数可用于初始化整个像素图,使其具有给定的颜色。

QImage和QPixmap有函数转换
通常,在将QImage对象转换为屏幕上显示的QPixmap之前,QImage类用于加载图像文件,可选地操作图像数据。或者,如果不需要操作,可以直接将图像文件加载到QPixmap中。
QPixmap提供了一组函数,可用于获取关于pixmap的各种信息。此外,还有几个功能可以实现pixmap的转换。