QImage 类提供独立于硬件的图像表示 (允许直接访问像素数据,且可以用作描绘设备)。
QImage 是为 I/O 和直接像素访问和操作而设计和优化的。
因为 QImage 是 QPaintDevice 的子类,所以 QPainter 可用于直接在图像上绘图。在 QImage 上使用 QPainter 时,可以在当前 GUI 线程之外的另一个线程中执行绘画。
QImage 类支持由 Format 枚举描述的几种图像格式。这些包括单色、8 位、32 位和 alpha 混合图像。
QImage 提供了一组函数,可用于获取有关图像的各种信息。还有几个函数可以转换图像。
QImage 对象可以通过值传递,因为 QImage 类使用隐式数据共享。 QImage 对象也可以流式传输和比较。
1.QImage(const QSize &size, Format format);
QImage::QImage(const QSize &size, Format format)
: QPaintDevice()
{
d = QImageData::create(size, format);
}
QImageData * QImageData::create(const QSize &size, QImage::Format format)
{
if (size.isEmpty() || format <= QImage::Format_Invalid || format >= QImage::NImageFormats)
return nullptr; // invalid parameter(s)
Q_TRACE_SCOPE(QImageData_create, size, format);
int width = size.width();
int height = size.height();
int depth = qt_depthForFormat(format);
auto params = calculateImageParameters(width, height, depth);
if (!params.isValid())
return nullptr;
QScopedPointer<QImageData> d(new QImage

本文介绍了QImage类的基本功能,包括其作为独立于硬件的图像表示形式,并提供了直接访问像素数据的能力。QImage还支持多种图像格式,如单色、8位、32位和alpha混合图像,并可通过QPainter进行绘图。文章还详细解析了QImage构造函数的工作原理及一些常用成员函数。
最低0.47元/天 解锁文章
1255

被折叠的 条评论
为什么被折叠?



