From de0e0cef1889449ae24a091a8df764e150b4886e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Fri, 8 Sep 2023 14:09:47 +1000 Subject: [PATCH] When orientation is applied, delete TIFF tag --- Tests/test_file_libtiff.py | 3 +++ src/PIL/ImageOps.py | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/Tests/test_file_libtiff.py b/Tests/test_file_libtiff.py index 69499ff6ba8..a7394f1bf5c 100644 --- a/Tests/test_file_libtiff.py +++ b/Tests/test_file_libtiff.py @@ -1035,7 +1035,10 @@ def test_orientation(self): with Image.open("Tests/images/g4_orientation_1.tif") as base_im: for i in range(2, 9): with Image.open("Tests/images/g4_orientation_" + str(i) + ".tif") as im: + assert 274 in im.tag_v2 + im.load() + assert 274 not in im.tag_v2 assert_image_similar(base_im, im, 0.7) diff --git a/src/PIL/ImageOps.py b/src/PIL/ImageOps.py index 1231ad6ebda..ce2b1bd9b4d 100644 --- a/src/PIL/ImageOps.py +++ b/src/PIL/ImageOps.py @@ -611,6 +611,10 @@ def exif_transpose(image, *, in_place=False): exif = exif_image.getexif() if ExifTags.Base.Orientation in exif: del exif[ExifTags.Base.Orientation] + if in_place and ExifTags.Base.Orientation in getattr( + exif_image, "tag_v2", {} + ): + del exif_image.tag_v2[ExifTags.Base.Orientation] if "exif" in exif_image.info: exif_image.info["exif"] = exif.tobytes() elif "Raw profile type exif" in exif_image.info: