From 49c650d1789416915e1443c758f472954d30cce3 Mon Sep 17 00:00:00 2001 From: Ben Konrath Date: Mon, 9 Jun 2025 18:43:52 +0200 Subject: [PATCH 1/5] Add thumbnailing support for animated GIFs --- easy_thumbnails/processors.py | 11 ++++++++++- easy_thumbnails/tests/files/animated_mode_p.gif | Bin 0 -> 87409 bytes easy_thumbnails/tests/test_animated_formats.py | 12 +++++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 easy_thumbnails/tests/files/animated_mode_p.gif diff --git a/easy_thumbnails/processors.py b/easy_thumbnails/processors.py index 7f7ba20c..b72c831e 100644 --- a/easy_thumbnails/processors.py +++ b/easy_thumbnails/processors.py @@ -55,7 +55,16 @@ def apply_to_frames(self, method, *args, **kwargs): new_frames[0].save( write_to, format=self.im.format, save_all=True, append_images=new_frames[1:] ) - return Image.open(write_to) + + to_return = Image.open(write_to) + # Animated GIFs are always opened in palette mode (P). We need seek through the + # frames to ensure that to_return has the correct mode. + # Background information: + # https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html#gif + if to_return.format == "GIF" and getattr(to_return, "is_animated", False): + for i in range(to_return.n_frames): + to_return.seek(i) + return to_return def __getattr__(self, key): method = getattr(self.im, key) diff --git a/easy_thumbnails/tests/files/animated_mode_p.gif b/easy_thumbnails/tests/files/animated_mode_p.gif new file mode 100644 index 0000000000000000000000000000000000000000..b09eed0126f33f31e3140daa841c8cccde34fe02 GIT binary patch literal 87409 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 Date: Tue, 10 Jun 2025 10:05:06 +0200 Subject: [PATCH 2/5] Updates --- easy_thumbnails/processors.py | 8 +++++-- .../tests/test_animated_formats.py | 24 +++++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/easy_thumbnails/processors.py b/easy_thumbnails/processors.py index b72c831e..213c4a7f 100644 --- a/easy_thumbnails/processors.py +++ b/easy_thumbnails/processors.py @@ -3,7 +3,7 @@ from functools import partial from io import BytesIO -from PIL import Image, ImageChops, ImageFilter +from PIL import Image, ImageChops, ImageFilter, GifImagePlugin from easy_thumbnails import utils @@ -61,7 +61,11 @@ def apply_to_frames(self, method, *args, **kwargs): # frames to ensure that to_return has the correct mode. # Background information: # https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html#gif - if to_return.format == "GIF" and getattr(to_return, "is_animated", False): + if ( + to_return.format == "GIF" + and to_return.is_animated + and GifImagePlugin.LOADING_STRATEGY != GifImagePlugin.LoadingStrategy.RGB_ALWAYS + ): for i in range(to_return.n_frames): to_return.seek(i) return to_return diff --git a/easy_thumbnails/tests/test_animated_formats.py b/easy_thumbnails/tests/test_animated_formats.py index db0c610d..5967b184 100644 --- a/easy_thumbnails/tests/test_animated_formats.py +++ b/easy_thumbnails/tests/test_animated_formats.py @@ -1,5 +1,5 @@ from io import BytesIO -from PIL import Image, ImageDraw +from PIL import Image, ImageDraw, GifImagePlugin from easy_thumbnails import processors from unittest import TestCase @@ -85,9 +85,25 @@ def test_background(self): self.assertEqual(processed.size, (1000, 1800)) def test_gif_with_mode_p(self): - with open("easy_thumbnails/tests/files/animated_mode_p.gif", "rb") as im: - t = get_thumbnailer(im, "easy_thumbnails/tests/files/animated_mode_p.gif") + image_path = "easy_thumbnails/tests/files/animated_mode_p.gif" + with open(image_path, "rb") as im: + t = get_thumbnailer(im, image_path) # Should not fail because of wrong mode and should still be animated. # https://github.com/SmileyChris/easy-thumbnails/issues/653 thumbnail = t.get_thumbnail({'size': (500, 50), 'crop': True}) - self.assertTrue(getattr(thumbnail.image, "is_animated", False)) + self.assertTrue(thumbnail.image.is_animated) + + def test_gif_with_mode_p__gif_plug_loading_strategy_rgb_always(self): + image_path = "easy_thumbnails/tests/files/animated_mode_p.gif" + default_loading_strategy = GifImagePlugin.LOADING_STRATEGY + try: + GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_ALWAYS + with open(image_path, "rb") as im: + t = get_thumbnailer(im, image_path) + # Should not fail because of wrong mode and should still be animated. + # https://github.com/SmileyChris/easy-thumbnails/issues/653 + thumbnail = t.get_thumbnail({'size': (500, 50), 'crop': True}) + self.assertTrue(thumbnail.image.is_animated) + except Exception: + GifImagePlugin.LOADING_STRATEGY = default_loading_strategy + GifImagePlugin.LOADING_STRATEGY = default_loading_strategy From 980b6ef70a03237cbdc4112ce9d8c69c529a91d2 Mon Sep 17 00:00:00 2001 From: Ben Konrath Date: Tue, 10 Jun 2025 10:49:45 +0200 Subject: [PATCH 3/5] Don't silently ignore test exception --- easy_thumbnails/tests/test_animated_formats.py | 1 + 1 file changed, 1 insertion(+) diff --git a/easy_thumbnails/tests/test_animated_formats.py b/easy_thumbnails/tests/test_animated_formats.py index 5967b184..c514ce04 100644 --- a/easy_thumbnails/tests/test_animated_formats.py +++ b/easy_thumbnails/tests/test_animated_formats.py @@ -106,4 +106,5 @@ def test_gif_with_mode_p__gif_plug_loading_strategy_rgb_always(self): self.assertTrue(thumbnail.image.is_animated) except Exception: GifImagePlugin.LOADING_STRATEGY = default_loading_strategy + raise GifImagePlugin.LOADING_STRATEGY = default_loading_strategy From e68fbb8a2dd9039c5c850f28bbc0f041b24eb06a Mon Sep 17 00:00:00 2001 From: Ben Konrath Date: Wed, 11 Jun 2025 09:10:15 +0200 Subject: [PATCH 4/5] Add docs --- docs/ref/animated_formats.rst | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/ref/animated_formats.rst b/docs/ref/animated_formats.rst index c8436455..d5271612 100644 --- a/docs/ref/animated_formats.rst +++ b/docs/ref/animated_formats.rst @@ -21,9 +21,25 @@ PNGs. There have been issues with conversion from GIF to WEBP, so it's currently not recommended to enable this specific conversion for animated images. +Animated GIF +============ + +Thumbnailing animated GIFs requires extra processing. To avoid this, you can enable the +`RGB_ALWAYS` loading strategy for the GifImagePlugin by adding this to your project: + +.. code-block:: python + + from PIL import GifImagePlugin + GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_ALWAYS + +This setting is an optional optimization because it changes how all GIFs are loaded by +Pillow, not just animated GIFs. The `Pillow GIF docs +`_ +explain how this settings works and you can decide if it's the right choice for +your project. Remark ====== In the future, Easy Thumbnails might preserve animated images by default, and/or provide the -option to enable/disable animations for each generated thumbnail. \ No newline at end of file +option to enable/disable animations for each generated thumbnail. From 89838902a9e59f468138965893605346e7d2987b Mon Sep 17 00:00:00 2001 From: Ben Konrath Date: Wed, 11 Jun 2025 09:11:01 +0200 Subject: [PATCH 5/5] Use mock.patch for loading strategy test --- .../tests/test_animated_formats.py | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/easy_thumbnails/tests/test_animated_formats.py b/easy_thumbnails/tests/test_animated_formats.py index c514ce04..7f50cc7c 100644 --- a/easy_thumbnails/tests/test_animated_formats.py +++ b/easy_thumbnails/tests/test_animated_formats.py @@ -1,7 +1,7 @@ from io import BytesIO from PIL import Image, ImageDraw, GifImagePlugin from easy_thumbnails import processors -from unittest import TestCase +from unittest import TestCase, mock from easy_thumbnails.files import get_thumbnailer @@ -93,18 +93,13 @@ def test_gif_with_mode_p(self): thumbnail = t.get_thumbnail({'size': (500, 50), 'crop': True}) self.assertTrue(thumbnail.image.is_animated) + @mock.patch("PIL.GifImagePlugin.LOADING_STRATEGY", GifImagePlugin.LoadingStrategy.RGB_ALWAYS) def test_gif_with_mode_p__gif_plug_loading_strategy_rgb_always(self): + print("m",GifImagePlugin.LOADING_STRATEGY) image_path = "easy_thumbnails/tests/files/animated_mode_p.gif" - default_loading_strategy = GifImagePlugin.LOADING_STRATEGY - try: - GifImagePlugin.LOADING_STRATEGY = GifImagePlugin.LoadingStrategy.RGB_ALWAYS - with open(image_path, "rb") as im: - t = get_thumbnailer(im, image_path) - # Should not fail because of wrong mode and should still be animated. - # https://github.com/SmileyChris/easy-thumbnails/issues/653 - thumbnail = t.get_thumbnail({'size': (500, 50), 'crop': True}) - self.assertTrue(thumbnail.image.is_animated) - except Exception: - GifImagePlugin.LOADING_STRATEGY = default_loading_strategy - raise - GifImagePlugin.LOADING_STRATEGY = default_loading_strategy + with open(image_path, "rb") as im: + t = get_thumbnailer(im, image_path) + # Should not fail because of wrong mode and should still be animated. + # https://github.com/SmileyChris/easy-thumbnails/issues/653 + thumbnail = t.get_thumbnail({'size': (500, 50), 'crop': True}) + self.assertTrue(thumbnail.image.is_animated)