QImage似乎根本没有加载任何图像(总是返回null)?

时间:2012-04-11 09:24:58

标签: c++ windows qt

我使用的是Windows7并使用Qt SDK 4.8。 尝试用QImage读取文件,但似乎没有加载。也就是说,QImage(filename)或QImage(filename,“PNG”)或QImage.load(filename)总是返回NULL。

这是我的代码:

void MainWindow::on_actionOpen_triggered()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    tr("Open Image"),
                                                    QDir::homePath(),
                                                    tr("Image Files (*.png *.tga *.bmp)"));

    if (!fileName.isEmpty())
    {
        targetImage = new QImage(fileName, "PNG");
        if(targetImage->isNull())
        {
            QMessageBox::information(this,
                                     tr("PhotoChop"),
                                     tr("Cannot load %1.").arg(fileName));
            return;
        }

        onScreenImage.setBackgroundRole(QPalette::Base);
        onScreenImage.setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
        onScreenImage.setScaledContents(true);
        onScreenImage.setPixmap(QPixmap::fromImage(*targetImage));
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

它与QImage如何加载“插件”以读取文件有关。一个选项是启用这些插件(针对不同的文件格式),然后链接它们。

虽然我只是使用Gdiplus :: Bitmap(来自windows)加载文件,然后从中创建了一个QPixmap可以使用的HBITMAP。