考虑simple PyQt4
app, loading picture with QPixmap
和 scaling 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&sweet和pythonic方式?
最佳答案
您需要一种读取和解析 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/