python - PyQt4 QPixmap 根据 EXIF 旋转 Jpg

标签 python pyqt4 exif image-rotation

考虑simple PyQt4 app, loading picture with QPixmapscaling with ratio .

代码的关键部分:

from PyQt4 import QtGui, QtCore
(...)
pixmap = QtGui.QPixmap("example.jpg")
pixmap = pixmap.scaled(1100, 1800, QtCore.Qt.KeepAspectRatio)

当我看到我的照片旋转错误时,我感到很惊讶。

我想,原因是照片包含有关相机位置的 EXIF 信息,应考虑这些信息并应用旋转:

$ exiftool example.jpg  | grep -i rot
Orientation                     : Rotate 270 CW
Auto Rotate                     : Rotate 270 CW
Rotation                        : 270

如何使用PyQt4来实现这一点,保持接近原始的简短程序形式......最好是short&sweetpythonic方式?

最佳答案

您需要一种读取和解析 EXIF 信息的方法。 (Py)Qt 没有内置该功能。但也有一些不错的 Python 工具,比如 pyexiv2 , EXIF.py , PyExifTool .

一旦获得旋转角度,就可以轻松地将其应用到您的QPixmap中:

pixmap = pixmap.scaled(1100, 1800, QtCore.Qt.KeepAspectRatio)
pixmap = pixmap.transformed(QtGui.QTransform().rotate(angle))

关于python - PyQt4 QPixmap 根据 EXIF 旋转 Jpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12924550/

相关文章:

python - 计算并在图表上放置点之间的天数

python - 了解 pyspark 在 groupby 上的应用

python - 使用 py2exe 编译 PyQt4 python 代码后,SVG 图像不出现

python - 将 virtualenv 与 Python 与 Visual Studio Code 一起使用

python - 使用 PyQt4 调整对话框大小

python - 如何检查是否按下了键盘修饰符(Shift、Ctrl 或 Alt)?

node.js - 请推荐一个用于将 IPTC 数据写入图像的 Node 模块?

android - 如何获取取自 FileProvider 类的图像文件的方向?

ios - 使用 EXIF 数据的 Swift base64 图像编码

python - 根据第一列中的日期拆分大型 csv 文件 Python 3.4.3