From 2981569b29c59ee028b0ad41e3e4a01e9feea9fa Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Thu, 17 Mar 2022 23:49:23 +1100 Subject: [PATCH] Added default duration of zero --- Tests/test_file_webp.py | 16 ++++++++++++++-- src/PIL/WebPImagePlugin.py | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Tests/test_file_webp.py b/Tests/test_file_webp.py index 0511193782c..13fbb529142 100644 --- a/Tests/test_file_webp.py +++ b/Tests/test_file_webp.py @@ -8,6 +8,7 @@ from PIL import Image, WebPImagePlugin, features from .helper import ( + assert_image_equal, assert_image_similar, assert_image_similar_tofile, hopper, @@ -105,6 +106,19 @@ def test_write_method(self, tmp_path): hopper().save(buffer_method, format="WEBP", method=6) assert buffer_no_args.getbuffer() != buffer_method.getbuffer() + @skip_unless_feature("webp_anim") + def test_save_all(self, tmp_path): + temp_file = str(tmp_path / "temp.webp") + im = Image.new("RGB", (1, 1)) + im2 = Image.new("RGB", (1, 1), "#f00") + im.save(temp_file, save_all=True, append_images=[im2]) + + with Image.open(temp_file) as reloaded: + assert_image_equal(im, reloaded) + + reloaded.seek(1) + assert_image_similar(im2, reloaded, 1) + def test_icc_profile(self, tmp_path): self._roundtrip(tmp_path, self.rgb_mode, 12.5, {"icc_profile": None}) if _webp.HAVE_WEBPANIM: @@ -171,7 +185,6 @@ def test_file_pointer_could_be_reused(self): Image.open(blob).load() Image.open(blob).load() - @skip_unless_feature("webp") @skip_unless_feature("webp_anim") def test_background_from_gif(self, tmp_path): with Image.open("Tests/images/chi.gif") as im: @@ -191,7 +204,6 @@ def test_background_from_gif(self, tmp_path): difference = sum(abs(original_value[i] - reread_value[i]) for i in range(0, 3)) assert difference < 5 - @skip_unless_feature("webp") @skip_unless_feature("webp_anim") def test_duration(self, tmp_path): with Image.open("Tests/images/dispose_bgnd.gif") as im: diff --git a/src/PIL/WebPImagePlugin.py b/src/PIL/WebPImagePlugin.py index 590161f3ecc..370b44e3a32 100644 --- a/src/PIL/WebPImagePlugin.py +++ b/src/PIL/WebPImagePlugin.py @@ -192,7 +192,7 @@ def _save_all(im, fp, filename): r, g, b = palette[background * 3 : (background + 1) * 3] background = (r, g, b, 0) - duration = im.encoderinfo.get("duration", im.info.get("duration")) + duration = im.encoderinfo.get("duration", im.info.get("duration", 0)) loop = im.encoderinfo.get("loop", 0) minimize_size = im.encoderinfo.get("minimize_size", False) kmin = im.encoderinfo.get("kmin", None)