Skip to content

Commit

Permalink
Merge pull request #5326 from radarhere/gif_disposal
Browse files Browse the repository at this point in the history
Improved efficiency when creating GIF disposal images
  • Loading branch information
hugovk committed Mar 20, 2021
2 parents e9c4834 + 2f84f63 commit 82b2f4a
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions src/PIL/GifImagePlugin.py
Expand Up @@ -265,16 +265,20 @@ def _seek(self, frame):
self.dispose = None
elif self.disposal_method == 2:
# replace with background colour
Image._decompression_bomb_check(self.size)
self.dispose = Image.core.fill("P", self.size, self.info["background"])

# only dispose the extent in this frame
x0, y0, x1, y1 = self.dispose_extent
dispose_size = (x1 - x0, y1 - y0)

Image._decompression_bomb_check(dispose_size)
self.dispose = Image.core.fill(
"P", dispose_size, self.info["background"]
)
else:
# replace with previous contents
if self.im:
self.dispose = self.im.copy()

# only dispose the extent in this frame
if self.dispose:
self.dispose = self._crop(self.dispose, self.dispose_extent)
# only dispose the extent in this frame
self.dispose = self._crop(self.im, self.dispose_extent)
except (AttributeError, KeyError):
pass

Expand Down

0 comments on commit 82b2f4a

Please sign in to comment.