QTSDK 4.8.4中QIMAGE功能的替代方案

时间:2013-09-04 23:15:26

标签: c++ qt qimage

在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。

1 个答案:

答案 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命令。