Change exif behaviour of plugins for jpeg, tiff and webp to the behaviour of png plugin, i.e. use im.info.get("exif") as a fallback for im.encoderinfo.get("exif")

This commit is contained in:
Mathias Graf 2022-12-15 09:12:41 +01:00
parent f4b1244213
commit 825a54ca31
3 changed files with 5 additions and 6 deletions

View File

@ -746,7 +746,7 @@ def _save(im, fp, filename):
optimize = info.get("optimize", False) optimize = info.get("optimize", False)
exif = info.get("exif", b"") exif = info.get("exif", im.info.get("exif", b""))
if isinstance(exif, Image.Exif): if isinstance(exif, Image.Exif):
exif = exif.tobytes() exif = exif.tobytes()

View File

@ -1601,14 +1601,13 @@ def _save(im, fp, filename):
# write any arbitrary tags passed in as an ImageFileDirectory # write any arbitrary tags passed in as an ImageFileDirectory
if "tiffinfo" in encoderinfo: if "tiffinfo" in encoderinfo:
info = encoderinfo["tiffinfo"] info = encoderinfo["tiffinfo"]
elif "exif" in encoderinfo: else:
info = encoderinfo["exif"] info = encoderinfo.get("exif", im.info.get("exif", b""))
if isinstance(info, bytes): if isinstance(info, bytes):
exif = Image.Exif() exif = Image.Exif()
exif.load(info) exif.load(info)
info = exif info = exif
else:
info = {}
logger.debug("Tiffinfo Keys: %s" % list(info)) logger.debug("Tiffinfo Keys: %s" % list(info))
if isinstance(info, ImageFileDirectory_v1): if isinstance(info, ImageFileDirectory_v1):
info = info.to_v2() info = info.to_v2()

View File

@ -320,7 +320,7 @@ def _save(im, fp, filename):
lossless = im.encoderinfo.get("lossless", False) lossless = im.encoderinfo.get("lossless", False)
quality = im.encoderinfo.get("quality", 80) quality = im.encoderinfo.get("quality", 80)
icc_profile = im.encoderinfo.get("icc_profile") or "" icc_profile = im.encoderinfo.get("icc_profile") or ""
exif = im.encoderinfo.get("exif", b"") exif = im.encoderinfo.get("exif", im.info.get("exif", b""))
if isinstance(exif, Image.Exif): if isinstance(exif, Image.Exif):
exif = exif.tobytes() exif = exif.tobytes()
if exif.startswith(b"Exif\x00\x00"): if exif.startswith(b"Exif\x00\x00"):