Allow FotoStation tags

This commit is contained in:
Andrew Murray 2023-08-22 10:13:41 +10:00
parent 6bd3ed439a
commit b37ca350a8
2 changed files with 19 additions and 2 deletions

View File

@ -1,5 +1,5 @@
import sys
from io import StringIO
from io import BytesIO, StringIO
from PIL import Image, IptcImagePlugin
@ -30,6 +30,23 @@ def test_getiptcinfo_jpg_found():
assert iptc[(2, 101)] == b"Hungary"
def test_getiptcinfo_fotostation():
# Arrange
with open(TEST_FILE, "rb") as fp:
data = bytearray(fp.read())
data[86] = 240
f = BytesIO(data)
with Image.open(f) as im:
# Act
iptc = IptcImagePlugin.getiptcinfo(im)
# Assert
for tag in iptc.keys():
if tag[0] == 240:
return
assert False, "FotoStation tag not found"
def test_getiptcinfo_zero_padding():
# Arrange
with Image.open(TEST_FILE) as im:

View File

@ -64,7 +64,7 @@ class IptcImageFile(ImageFile.ImageFile):
tag = s[1], s[2]
# syntax
if s[0] != 0x1C or tag[0] < 1 or tag[0] > 9:
if s[0] != 0x1C or tag[0] not in [1, 2, 3, 4, 5, 6, 7, 8, 9, 240]:
msg = "invalid IPTC/NAA file"
raise SyntaxError(msg)