在Qt中使用QImage myImage(w, h, QImage::Format_ARGB32);
是否有其他选择? (w
和h
是导入图片的宽度和高度?)
这是代码:
if (tif) {
uint32 w, h;
TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &w);
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &h);
QImage myImage(w, h, QImage::Format_ARGB32);
if (!myImage.isNull()) {
if (TIFFReadRGBAImage(tif, w, h, reinterpret_cast<uint32 *>(myImage.bits()), 0)) {
myImage = myImage.rgbSwapped();
myImage = myImage.mirrored();
}
else {
return ImageStatePtr(0);
}
}
TIFFClose(tif);
ImageStatePtr ptr = ImageStatePtr(new ImageState(QFileInfo(filename).fileName(), myImage));
return ptr;
}
else return ImageStatePtr(0);
}
我需要用具有相同功能的替代品替换QImage。出于某种原因,我不允许在我的项目中使用QImage。
答案 0 :(得分:1)
如果您想导入图片,您可能需要这样:
QImage::QImage ( const QString & fileName, const char * format = 0 );
你可以这样简单地使用:
QImage myImage("test.png");
您也可以使用QPixmap:
QPixmap myPixmap("test.png");
QImage和QPixmap对于不同的任务非常有用。该文件说:
Qt提供了四个处理图像数据的类:QImage,QPixmap, QBitmap和QPicture。 QImage专为I / O而设计和优化 用于直接像素访问和操作,同时设计QPixmap 并优化用于在屏幕上显示图像。 QBitmap只是一个 方便类继承QPixmap,确保深度为1 如果QPixmap对象确实是a,则isQBitmap()函数返回true 位图,否则返回false。最后,QPicture类是一个 绘制设备,记录和重放QPainter命令。