Skip to content

Commit 686b5e2

Browse files
authored
Merge pull request #8392 from radarhere/tiff_seek
Do not create core image in TIFF seek()
2 parents 914f7e1 + a9b9a63 commit 686b5e2

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/PIL/TiffImagePlugin.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1193,11 +1193,11 @@ def seek(self, frame: int) -> None:
11931193
if not self._seek_check(frame):
11941194
return
11951195
self._seek(frame)
1196-
# Create a new core image object on second and
1197-
# subsequent frames in the image. Image may be
1198-
# different size/mode.
1199-
Image._decompression_bomb_check(self._tile_size)
1200-
self.im = Image.core.new(self.mode, self._tile_size)
1196+
if self._im is not None and (
1197+
self.im.size != self._tile_size or self.im.mode != self.mode
1198+
):
1199+
# The core image will no longer be used
1200+
self._im = None
12011201

12021202
def _seek(self, frame: int) -> None:
12031203
self.fp = self._fp
@@ -1279,6 +1279,7 @@ def load(self) -> Image.core.PixelAccess | None:
12791279

12801280
def load_prepare(self) -> None:
12811281
if self._im is None:
1282+
Image._decompression_bomb_check(self._tile_size)
12821283
self.im = Image.core.new(self.mode, self._tile_size)
12831284
ImageFile.ImageFile.load_prepare(self)
12841285

0 commit comments

Comments
 (0)