Skip to content

Commit

Permalink
Merge pull request #6493 from radarhere/bytes_ascii
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk committed Aug 31, 2022
2 parents 196210b + 3459120 commit 6697de1
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
16 changes: 16 additions & 0 deletions Tests/test_file_tiff_metadata.py
Expand Up @@ -185,6 +185,22 @@ def test_iptc(tmp_path):
im.save(out)


def test_writing_bytes_to_ascii(tmp_path):
im = hopper()
info = TiffImagePlugin.ImageFileDirectory_v2()

tag = TiffTags.TAGS_V2[271]
assert tag.type == TiffTags.ASCII

info[271] = b"test"

out = str(tmp_path / "temp.tiff")
im.save(out, tiffinfo=info)

with Image.open(out) as reloaded:
assert reloaded.tag_v2[271] == "test"


def test_undefined_zero(tmp_path):
# Check that the tag has not been changed since this test was created
tag = TiffTags.TAGS_V2[45059]
Expand Down
4 changes: 3 additions & 1 deletion src/PIL/TiffImagePlugin.py
Expand Up @@ -727,7 +727,9 @@ def load_string(self, data, legacy_api=True):
@_register_writer(2)
def write_string(self, value):
# remerge of https://github.com/python-pillow/Pillow/pull/1416
return b"" + value.encode("ascii", "replace") + b"\0"
if not isinstance(value, bytes):
value = value.encode("ascii", "replace")
return value + b"\0"

@_register_loader(5, 8)
def load_rational(self, data, legacy_api=True):
Expand Down

0 comments on commit 6697de1

Please sign in to comment.