我目前正在开发一个 Qt 程序,该程序可以处理用户提供的图像。我遇到的一个问题是,很多图像都以错误的扩展名保存 - 例如图像以 JPG 格式保存,但扩展名为 PNG。
Qt 似乎不能很好地处理这个问题。当我将这样的图像加载到 QImage 中时,QImage 无法加载。我一直在浏览文档,但没有遇到任何与此相关的内容。
我使用的其他程序能够正确地将图像识别为 JPG,尽管有 PNG 扩展名,因此 Qt 应该没有理由无法做到这一点,但我没有任何运气。
有什么建议吗?
最佳答案
我通过使用 QImageReader 解决了这个问题。下面显示了使用 PySide 的示例。 首先,我创建了一个 QImageReader 实例并将其设置为从内容中读取格式。
image_reader = QtGui.QImageReader()
image_reader.setDecideFromContent(True)
此设置告诉读者仅查看图像的数据来确定其格式,而不是扩展名。
然后我将文件名设置为我想要加载的图像的文件名并调用 read()。
image_reader.setFileName(file_path_here)
image = image_reader.read()
Read 返回一个 QImage 对象,因此我从那里继续编写其余的代码。
关于python - Qt - 加载扩展名错误的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724724/