Read EXIF data tEXt chunk into info as bytes instead of string

This commit is contained in:
Andrew Murray 2020-07-31 17:42:48 +10:00
parent 48c7d84bf7
commit 5da1a8adcf
3 changed files with 9 additions and 3 deletions

BIN
Tests/images/exif_text.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View File

@ -606,6 +606,11 @@ class TestFilePng:
exif = im.copy().getexif()
assert exif[274] == 1
# With a tEXt chunk
with Image.open("Tests/images/exif_text.png") as im:
exif = im._getexif()
assert exif[274] == 1
# With XMP tags
with Image.open("Tests/images/xmp_tags_orientation.png") as im:
exif = im.getexif()

View File

@ -509,10 +509,11 @@ class PngStream(ChunkStream):
v = b""
if k:
k = k.decode("latin-1", "strict")
v = v.decode("latin-1", "replace")
v_str = v.decode("latin-1", "replace")
self.im_info[k] = self.im_text[k] = v
self.check_text_memory(len(v))
self.im_info[k] = v if k == "exif" else v_str
self.im_text[k] = v_str
self.check_text_memory(len(v_str))
return s