QTSDK 4.8.4 中 QIMAGE 函数的替代方法

Alternative for QIMAGE function in QTSDK 4.8.4

本文关键字:方法 QIMAGE QTSDK 函数      更新时间:2023-10-16

在Qt中使用QImage myImage(w, h, QImage::Format_ARGB32);有没有其他方法?(wh是导入图片的宽度和高度)?

这是代码:

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。

如果要导入图像,可能需要以下内容:

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。QIimage针对I/O进行了设计和优化,并且 用于直接像素访问和操作,而 QPixmap 设计 并针对在屏幕上显示图像进行了优化。QBitmap只是一个 继承 QPixmap 的便利类,保证深度为 1。这 isQBitmap() 函数返回 true 如果 QPixmap 对象确实是一个 位图,否则返回 false。最后,QPicture 类是一个 绘制记录和重播 QPainter 命令的设备。