python - Qt - 加载扩展名错误的图像

标签 python qt pyside file-extension qimage

我目前正在开发一个 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/

相关文章:

c++ - QTableView 中标题单元格中的复选框

qt - 使用 Qt Designer 在布局中居中小部件

python - 在 Pyside 中的自定义 QProgressBar 上绘制刻度

pyside - 在 Mac 上安装 pyside 时 PySide 构建轮失败

python - 在 matplotlib 中对齐条形图

python - PySide 和 QtWebKit : Module could not be found

python - Pandas:合并数据框并创建新的条件列

c++ - 强制 Qt MOC 扩展一些自定义宏?

c++ - 如何创建 3 态自定义按钮?

python - Django Memcached 缓存消失