Есть, но я еще не все написал. В основном, если вы загружаете изображение с набором полей EXIF «Ориентация» , вы можете получить этот параметр.
Во-первых, быстрый тест с использованием этого изображения из PIL Исходный код GitHub Pillow-7.1.2/Tests/images/hopper_orientation_6.jpg
и запуск jhead
, вы видите, что ориентация EXIF равна 6:
jhead /Users/mark/StackOverflow/PillowBuild/Pillow-7.1.2/Tests/images/hopper_orientation_6.jpg
File name : /Users/mark/StackOverflow/PillowBuild/Pillow-7.1.2/Tests/images/hopper_orientation_6.jpg
File size : 4951 bytes
File date : 2020:04:24 14:00:09
Resolution : 128 x 128
Orientation : rotate 90 <--- see here
JPEG Quality : 75
Теперь сделайте это в PIL:
from PIL import Image
# Load that image
im = Image.open('/Users/mark/StackOverflow/PillowBuild/Pillow-7.1.2/Tests/images/hopper_orientation_6.jpg')
# Get all EXIF data
e = im.getexif()
# Specifically get orientation
e.get(0x0112)
# prints 6
Теперь нажмите source , и вы можете определить, как ваше изображение было повернуто, и отменить его.
Или вы можете быть совершенно непрофессиональным ;-) и создать функцию с именем SneakilyRemoveOrientationWhileNooneIsLooking(filename)
и оболочку out (подпроцесс) на exiftool
и удалите ориентацию с помощью:
exiftool -Orientation= image.jpg