Skip to content

Commit 2355001

Browse files
authored
Merge pull request #6101 from radarhere/mpo
Reset size when seeking away from "Large Thumbnail" MPO frame
2 parents 172fd6c + 573cf27 commit 2355001

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

Tests/test_file_mpo.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@ def test_frame_size():
8585
im.seek(1)
8686
assert im.size == (680, 480)
8787

88+
im.seek(0)
89+
assert im.size == (640, 480)
90+
8891

8992
def test_ignore_frame_size():
9093
# Ignore the different size of the second frame

src/PIL/MpoImagePlugin.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ def _open(self):
4646
self._after_jpeg_open()
4747

4848
def _after_jpeg_open(self, mpheader=None):
49+
self._initial_size = self.size
4950
self.mpinfo = mpheader if mpheader is not None else self._getmp()
5051
self.n_frames = self.mpinfo[0xB001]
5152
self.__mpoffsets = [
@@ -77,6 +78,7 @@ def seek(self, frame):
7778
segment = self.fp.read(2)
7879
if not segment:
7980
raise ValueError("No data found for frame")
81+
self._size = self._initial_size
8082
if i16(segment) == 0xFFE1: # APP1
8183
n = i16(self.fp.read(2)) - 2
8284
self.info["exif"] = ImageFile._safe_read(self.fp, n)

0 commit comments

Comments
 (0)