Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Tests/test_file_gif.py
Original file line number Diff line number Diff line change
Expand Up @@ -1478,8 +1478,6 @@ def test_extents(

im.seek(1)
assert im.size == (150, 150)

im.load()
assert im.im.size == (150, 150)


Expand Down
15 changes: 8 additions & 7 deletions src/PIL/GifImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,14 @@ def _seek(self, frame: int, update_image: bool = True) -> None:
size = max(x1, self.size[0]), max(y1, self.size[1])
Image._decompression_bomb_check(size)
self._size = size

if self._im is not None and update_image:
expanded_im = Image.core.fill(self.im.mode, self.size)
if self.mode == "P":
expanded_im.putpalette("RGB", "RGB", self.im.getpalette())
expanded_im.paste(self.im, (0, 0, *self.im.size))

self.im = expanded_im
frame_dispose_extent = x0, y0, x1, y1
flags = s[8]

Expand Down Expand Up @@ -447,13 +455,6 @@ def load_prepare(self) -> None:
self.im.putpalette("RGB", *self._frame_palette.getdata())
else:
self._im = None
if not self._prev_im and self._im is not None and self.size != self.im.size:
expanded_im = Image.core.fill(self.im.mode, self.size)
if self._frame_palette:
expanded_im.putpalette("RGB", *self._frame_palette.getdata())
expanded_im.paste(self.im, (0, 0, *self.im.size))

self.im = expanded_im
self._mode = temp_mode
self._frame_palette = None

Expand Down
Loading