QImage似乎根本没有加载任何图像(总是返回null)?
问题描述:
我在Windows7上并使用Qt SDK 4.8。 试图读取与QImage中的文件,但它似乎并没有加载。也就是说,QImage(文件名)或QImage(文件名,“PNG”)或QImage.load(文件名)总是返回NULL。QImage似乎根本没有加载任何图像(总是返回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(从windows)加载文件,然后从中创建了一个QPixmap可以使用的HBITMAP。
什么文件名返回?完整路径,相对路径? – Kunal 2012-04-11 10:13:12
fileName返回完整路径。但我甚至尝试过SDK(ImageViewer)的示例,并且该示例中的QImage执行完全相同的操作,也就是它也不加载图像(也返回完整路径)。我已经尝试了几个不同的图像 – SaldaVonSchwartz 2012-04-11 10:21:38
您是否尝试过其他格式?我在PNG和Qt方面遇到了麻烦,因为我的(Linux)系统有更新版本的PNG库,并且无法使用它。我认为它需要v1.2。 – cmannett85 2012-04-11 11:59:14