Slightly simplify the getexif procedure
No need for a loop here either. Note that you could also use a dictionary rather than an if-elif tree for the value -> rotation mapping (where valid/supported).
This commit is contained in:
parent
819b366bf5
commit
4fa160259d
1 changed files with 37 additions and 36 deletions
|
@ -22,7 +22,7 @@ import sys
|
||||||
import os
|
import os
|
||||||
import zlib
|
import zlib
|
||||||
import argparse
|
import argparse
|
||||||
from PIL import Image, TiffImagePlugin, GifImagePlugin, ImageCms
|
from PIL import Image, TiffImagePlugin, GifImagePlugin, ImageCms, ExifTags
|
||||||
|
|
||||||
if hasattr(GifImagePlugin, "LoadingStrategy"):
|
if hasattr(GifImagePlugin, "LoadingStrategy"):
|
||||||
# Pillow 9.0.0 started emitting all frames but the first as RGB instead of
|
# Pillow 9.0.0 started emitting all frames but the first as RGB instead of
|
||||||
|
@ -1372,11 +1372,12 @@ def get_imgmetadata(
|
||||||
|
|
||||||
rotation = 0
|
rotation = 0
|
||||||
if rotreq in (None, Rotation.auto, Rotation.ifvalid):
|
if rotreq in (None, Rotation.auto, Rotation.ifvalid):
|
||||||
if hasattr(imgdata, "_getexif") and imgdata._getexif() is not None:
|
exif_dict = imgdata.getexif()
|
||||||
for tag, value in imgdata._getexif().items():
|
o_key = ExifTags.Base.Orientation.value # 274 rsp. 0x112
|
||||||
if TAGS.get(tag, tag) == "Orientation":
|
if exif_dict and o_key in exif_dict:
|
||||||
# Detailed information on EXIF rotation tags:
|
# Detailed information on EXIF rotation tags:
|
||||||
# http://impulseadventure.com/photo/exif-orientation.html
|
# http://impulseadventure.com/photo/exif-orientation.html
|
||||||
|
value = exif_dict[o_key]
|
||||||
if value == 1:
|
if value == 1:
|
||||||
rotation = 0
|
rotation = 0
|
||||||
elif value == 6:
|
elif value == 6:
|
||||||
|
|
Loading…
Reference in a new issue