首页 > 解决方案 > Qt无法加载任何文件QImage

问题描述

这是我的代码:

QImage cover(":/Images/cover-placeholder.jpg");

if (cover.isNull()) {
    cout << "File load Error!" << endl;
}

无论我上传哪个文件,它总是会引发错误。我也试过写文件的绝对路径,它仍然给出错误。我也试过这段代码:

QString fileName = QFileDialog::getOpenFileName();

QImage temp;
if (!temp.load(fileName)) {
   cout << "Cant load" << endl;
}

它也不起作用。问题是什么?

qrc 文件:

<RCC>
    <qresource prefix="/">
        <file>Images/cover-placeholder.jpg</file>
    </qresource>
</RCC>

标签: c++qtfileqt5

解决方案


有些从网上下载的图片后缀与格式不对应,QImage使用后缀来检测图片的类型,所以我建议验证后缀是否是相同的格式。

要获取 QImage 的加载原因,必须使用 QImageReader:

QImageReader reader("/fullpath/of/cover-placeholder.jpg"); 
QImage img = reader.read() 
if(img.isNull())
{
    qDebug() << reader.errorString();
}

推荐阅读