这是我的代码:
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>
从互联网下载的一些图像的后缀与格式不符,QImages使用后缀来检测图像的类型,因此我建议验证后缀是否为相同的格式。
要获得QImages的加载原因,必须使用QImageReader:
QImageReader reader("/fullpath/of/cover-placeholder.jpg");
QImage img = reader.read()
if(img.isNull())
{
qDebug() << reader.errorString();
}
此外,如果您正在部署Qt应用程序,则应在app_dir/imageformats目录下部署图像格式插件。插件包括:qjpeg.dll、qgif.dll、qsvg.dll等