Open Knio opened 18 hours ago
NOTE: Commenting out this line of code fixes the issue, at least in the sense of then it does not rotate at all (and is in the native sensor orientation) However, the orientation tag is still not exposed to img.getexif() for some reason
https://github.com/python-pillow/Pillow/blob/main/src/PIL/TiffImagePlugin.py#L1317-L1319
It's not yet clear to me why the final image is unexpected.
exiftool _MG_6885.CR2
prints out 'Orientation : Rotate 90 CW', and that is what Pillow is applying to the data that it reads.
However, the orientation tag is still not exposed to img.getexif() for some reason
When a TIFF image is automatically transposed on load, del self.tag_v2[ExifTags.Base.Orientation]
removes the orientation tag so that it isn't seen by getexif()
. This is deliberate, so that exif_transpose()
won't see that the tag is still there and try to transpose the image again, leading to a double transpose.
Sorry, I meant in my test I commented out all 3 lines there
If I make that change, I do see the Orientation tag printed out by your script.
import pathlib
import PIL.Image, PIL.ExifTags
root = pathlib.Path(r'.')
img_path = root / '_MG_6885.CR2'
img = PIL.Image.open(img_path)
print(img.getexif()[PIL.ExifTags.Base.Orientation]) # 6
What did you do?
Opening a .CR2 image loads the image with an incorrectly applied EXIF orientation. The end result in one case is that the image is flipped upsidedown.
Windows explorer and Adobe bridge both show the image correctly in previews, and when opening the full image.
What did you expect to happen?
Do not rotate the image at all, and expose the EXIF tag to the user -or- just orient properly
What actually happened?
Incorrect image
What are your OS, Python and Pillow versions?
_MG_6885.zip