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

QImage doesn't seem to load any images at all (always returning null)?

本文关键字:返回 null 图像 任何 加载 Qmage      更新时间:2023-10-16

我在Windows7上,使用Qt SDK 4.8。尝试使用 QImage 读取文件,但它似乎无法加载。也就是说,QImage(文件名)或QImage(文件名,"PNG")或QImage.load(文件名)始终返回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));
    }
}

我做错了什么?

它与QImage如何加载"插件"来读取文件有关。一种选择是启用这些插件(针对不同的文件格式),然后链接到它们。

虽然相反,我只是使用Gdiplus::Bitmap(从窗口)加载到文件中,然后从中创建了一个QPixmap可以使用的HBITMAP。