c++ - 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>
解决方案
有些从网上下载的图片后缀与格式不对应,QImage使用后缀来检测图片的类型,所以我建议验证后缀是否是相同的格式。
要获取 QImage 的加载原因,必须使用 QImageReader:
QImageReader reader("/fullpath/of/cover-placeholder.jpg");
QImage img = reader.read()
if(img.isNull())
{
qDebug() << reader.errorString();
}
推荐阅读
- php - 消息:非法字符串偏移量从 Codeigniter2x 版本升级到 Codeigniter 3x 版本
- c++ - 使用 Poco:Condition 唤醒两个线程
- c++ - 如何在安装了 Visual Studio 2017 的 Windows 10 上使用第三方实用程序(包括 swiftshader 和 node 和 node_modules)构建 CEF
- azure - 无法在我使用 Graph API 获得的 Azure AD 应用程序列表中检索我的应用程序之一
- here-api - 匹配路由 API 的 KML 示例
- react-native - 发出一个事件会导致其他事件在本机反应中触发
- transactions - 如何在不完全同步的情况下仅从区块链接收有关特定地址集的交易?
- apache-flink - 如何在不停机的情况下部署新工作
- clickhouse - Clickhouse:按与表存储相同的顺序排列内存耗尽
- c++ - 如何使用 boost spirit x3 注册错误处理程序?