diff --git a/Tests/test_file_gif.py b/Tests/test_file_gif.py index 52d7f035d..94fc95b05 100644 --- a/Tests/test_file_gif.py +++ b/Tests/test_file_gif.py @@ -341,6 +341,17 @@ def test_dispose_previous(): pass +def test_previous_frame_loaded(): + with Image.open("Tests/images/dispose_none.gif") as img: + img.load() + img.seek(1) + img.load() + img.seek(2) + with Image.open("Tests/images/dispose_none.gif") as img_skipped: + img_skipped.seek(2) + assert_image_equal(img_skipped, img) + + def test_save_dispose(tmp_path): out = str(tmp_path / "temp.gif") im_list = [ diff --git a/src/PIL/GifImagePlugin.py b/src/PIL/GifImagePlugin.py index 139f91ea0..48685c883 100644 --- a/src/PIL/GifImagePlugin.py +++ b/src/PIL/GifImagePlugin.py @@ -148,7 +148,7 @@ class GifImageFile(ImageFile.ImageFile): self.disposal_method = 0 else: # ensure that the previous frame was loaded - if not self.im: + if self.tile: self.load() if frame != self.__frame + 1: