From 1d9c931626b3cd08b9fa19c9e9e2d8c79604046e Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sun, 31 Dec 2023 22:43:08 +1100 Subject: [PATCH] Changed tile tuple to match other plugins --- Tests/test_file_iptc.py | 9 +++++++++ src/PIL/IptcImagePlugin.py | 10 +++------- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Tests/test_file_iptc.py b/Tests/test_file_iptc.py index d0ecde393..e1a8c92c7 100644 --- a/Tests/test_file_iptc.py +++ b/Tests/test_file_iptc.py @@ -11,6 +11,15 @@ from .helper import hopper TEST_FILE = "Tests/images/iptc.jpg" +def test_open(): + f = BytesIO( + b"\x1c\x03<\x00\x02\x01\x00\x1c\x03x\x00\x01\x01\x1c" + b"\x03\x14\x00\x01\x01\x1c\x03\x1e\x00\x01\x01\x1c\x08\n\x00\x00" + ) + with Image.open(f) as im: + assert im.tile == [("iptc", (0, 0, 1, 1), 25, "raw")] + + def test_getiptcinfo_jpg_none(): # Arrange with hopper() as im: diff --git a/src/PIL/IptcImagePlugin.py b/src/PIL/IptcImagePlugin.py index e7dc3e4e4..09a60f25c 100644 --- a/src/PIL/IptcImagePlugin.py +++ b/src/PIL/IptcImagePlugin.py @@ -128,24 +128,20 @@ class IptcImageFile(ImageFile.ImageFile): # tile if tag == (8, 10): - self.tile = [ - ("iptc", (compression, offset), (0, 0, self.size[0], self.size[1])) - ] + self.tile = [("iptc", (0, 0) + self.size, offset, compression)] def load(self): if len(self.tile) != 1 or self.tile[0][0] != "iptc": return ImageFile.ImageFile.load(self) - type, tile, box = self.tile[0] - - encoding, offset = tile + offset, compression = self.tile[0][2:] self.fp.seek(offset) # Copy image data to temporary file o_fd, outfile = tempfile.mkstemp(text=False) o = os.fdopen(o_fd) - if encoding == "raw": + if compression == "raw": # To simplify access to the extracted file, # prepend a PPM header o.write("P5\n%d %d\n255\n" % self.size)