diff --git a/changelog.d/19098.misc b/changelog.d/19098.misc new file mode 100644 index 000000000..a6933348a --- /dev/null +++ b/changelog.d/19098.misc @@ -0,0 +1 @@ +Use Pillow's `Image.getexif` method instead of the experimental `Image._getexif`. diff --git a/synapse/media/thumbnailer.py b/synapse/media/thumbnailer.py index cc2fe7318..a42d39c31 100644 --- a/synapse/media/thumbnailer.py +++ b/synapse/media/thumbnailer.py @@ -97,16 +97,7 @@ class Thumbnailer: self.transpose_method = None try: # We don't use ImageOps.exif_transpose since it crashes with big EXIF - # - # Ignore safety: Pillow seems to acknowledge that this method is - # "private, experimental, but generally widely used". Pillow 6 - # includes a public getexif() method (no underscore) that we might - # consider using instead when we can bump that dependency. - # - # At the time of writing, Debian buster (currently oldstable) - # provides version 5.4.1. It's expected to EOL in mid-2022, see - # https://wiki.debian.org/DebianReleases#Production_Releases - image_exif = self.image._getexif() # type: ignore + image_exif = self.image.getexif() if image_exif is not None: image_orientation = image_exif.get(EXIF_ORIENTATION_TAG) assert type(image_orientation) is int # noqa: E721