Skip to content

Commit

Permalink
Merge pull request #6101 from radarhere/mpo
Browse files Browse the repository at this point in the history
Reset size when seeking away from "Large Thumbnail" MPO frame
  • Loading branch information
hugovk committed Mar 2, 2022
2 parents 172fd6c + 573cf27 commit 2355001
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Tests/test_file_mpo.py
Expand Up @@ -85,6 +85,9 @@ def test_frame_size():
im.seek(1)
assert im.size == (680, 480)

im.seek(0)
assert im.size == (640, 480)


def test_ignore_frame_size():
# Ignore the different size of the second frame
Expand Down
2 changes: 2 additions & 0 deletions src/PIL/MpoImagePlugin.py
Expand Up @@ -46,6 +46,7 @@ def _open(self):
self._after_jpeg_open()

def _after_jpeg_open(self, mpheader=None):
self._initial_size = self.size
self.mpinfo = mpheader if mpheader is not None else self._getmp()
self.n_frames = self.mpinfo[0xB001]
self.__mpoffsets = [
Expand Down Expand Up @@ -77,6 +78,7 @@ def seek(self, frame):
segment = self.fp.read(2)
if not segment:
raise ValueError("No data found for frame")
self._size = self._initial_size
if i16(segment) == 0xFFE1: # APP1
n = i16(self.fp.read(2)) - 2
self.info["exif"] = ImageFile._safe_read(self.fp, n)
Expand Down

0 comments on commit 2355001

Please sign in to comment.