[PYTHON] Wird mit PIL unter Berücksichtigung des EXIF-Orientierungs-Tags verarbeitet

Wenn eine JPEG-Datei mit PIL (Pillow) geöffnet wird, wird dies nicht berücksichtigt, auch wenn ein Wert im Orientierungs-Tag von EXIF festgelegt ist. Ein Implementierungsbeispiel zum Generieren von Daten nach dem Ausführen einer Rotations- / Flip-Verarbeitung gemäß dem im Orientierungs-Tag festgelegten Wert.

from PIL import Image

file_path = "Pfad der JPEG-Bilddatei"

#Verarbeitung gemäß dem Orientierungs-Tag-Wert
#Der Drehwinkel in PIL ist gegen den Uhrzeigersinn positiv
convert_image = {
    1: lambda img: img,
    2: lambda img: img.transpose(Image.FLIP_LEFT_RIGHT),                              #Horizontal spiegeln
    3: lambda img: img.transpose(Image.ROTATE_180),                                   #180 Grad Drehung
    4: lambda img: img.transpose(Image.FLIP_TOP_BOTTOM),                              #auf den Kopf stellen
    5: lambda img: img.transpose(Image.FLIP_LEFT_RIGHT).transpose(Pillow.ROTATE_90),  #Nach links und rechts drehen und um 90 Grad gegen den Uhrzeigersinn drehen
    6: lambda img: img.transpose(Image.ROTATE_270),                                   #270 Grad gegen den Uhrzeigersinn drehen
    7: lambda img: img.transpose(Image.FLIP_LEFT_RIGHT).transpose(Pillow.ROTATE_270), #Umkehrung von links nach rechts und Drehung gegen den Uhrzeigersinn um 270 Grad
    8: lambda img: img.transpose(Image.ROTATE_90),                                    #90 Grad gegen den Uhrzeigersinn drehen
}

img = Image.open(file_path)
exif = img._getexif()
orientation = exif.get(0x112, 1)

new_img = convert_image[orientation](img)

Klicken Sie hier für die Definition des EXIF-Standards. http://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf

Die Definition des Werts des Orientierungs-Tags von EXIF ist jedoch nur anhand der Erklärung schwer zu verstehen. Es gibt verschiedene Seiten, die durch Suchen auf leicht verständliche Weise erklärt werden. Zum Beispiel hier. http://hackmylife.net/archives/7400448.html

Recommended Posts

Wird mit PIL unter Berücksichtigung des EXIF-Orientierungs-Tags verarbeitet
PIL-Installation mit Pip
EXIF mit Schlucken extrahieren
Bildverarbeitung mit PIL