mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-13 18:56:17 +03:00
Only read different sizes for "Large Thumbnail" frames
This commit is contained in:
parent
41462d8c55
commit
6175389186
BIN
Tests/images/ignore_frame_size.mpo
Normal file
BIN
Tests/images/ignore_frame_size.mpo
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
|
@ -89,6 +89,17 @@ def test_frame_size():
|
||||||
assert im.size == (680, 480)
|
assert im.size == (680, 480)
|
||||||
|
|
||||||
|
|
||||||
|
def test_ignore_frame_size():
|
||||||
|
# Ignore the different size of the second frame
|
||||||
|
# since this is not a "Large Thumbnail" image
|
||||||
|
with Image.open("Tests/images/ignore_frame_size.mpo") as im:
|
||||||
|
assert im.size == (64, 64)
|
||||||
|
|
||||||
|
im.seek(1)
|
||||||
|
assert im.mpinfo[0xB002][1]['Attribute']['MPType'] == "Multi-Frame Image: (Disparity)"
|
||||||
|
assert im.size == (64, 64)
|
||||||
|
|
||||||
|
|
||||||
def test_parallax():
|
def test_parallax():
|
||||||
# Nintendo
|
# Nintendo
|
||||||
with Image.open("Tests/images/sugarshack.mpo") as im:
|
with Image.open("Tests/images/sugarshack.mpo") as im:
|
||||||
|
@ -132,7 +143,7 @@ def test_mp_attribute():
|
||||||
with Image.open(test_file) as im:
|
with Image.open(test_file) as im:
|
||||||
mpinfo = im._getmp()
|
mpinfo = im._getmp()
|
||||||
frameNumber = 0
|
frameNumber = 0
|
||||||
for mpentry in mpinfo[45058]:
|
for mpentry in mpinfo[0xB002]:
|
||||||
mpattr = mpentry["Attribute"]
|
mpattr = mpentry["Attribute"]
|
||||||
if frameNumber:
|
if frameNumber:
|
||||||
assert not mpattr["RepresentativeImageFlag"]
|
assert not mpattr["RepresentativeImageFlag"]
|
||||||
|
|
|
@ -82,9 +82,11 @@ class MpoImageFile(JpegImagePlugin.JpegImageFile):
|
||||||
n = i16(self.fp.read(2)) - 2
|
n = i16(self.fp.read(2)) - 2
|
||||||
self.info["exif"] = ImageFile._safe_read(self.fp, n)
|
self.info["exif"] = ImageFile._safe_read(self.fp, n)
|
||||||
|
|
||||||
exif = self.getexif()
|
mptype = self.mpinfo[0xB002][frame]["Attribute"]["MPType"]
|
||||||
if 40962 in exif and 40963 in exif:
|
if mptype.startswith("Large Thumbnail"):
|
||||||
self._size = (exif[40962], exif[40963])
|
exif = self.getexif()
|
||||||
|
if 40962 in exif and 40963 in exif:
|
||||||
|
self._size = (exif[40962], exif[40963])
|
||||||
elif "exif" in self.info:
|
elif "exif" in self.info:
|
||||||
del self.info["exif"]
|
del self.info["exif"]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user