Merge pull request #6890 from radarhere/tiff_byte

Allow writing IFDRational to BYTE tag
This commit is contained in:
Hugo van Kemenade 2023-01-14 11:00:34 +02:00 committed by GitHub
commit eae294c748
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View File

@ -202,14 +202,15 @@ def test_writing_other_types_to_ascii(value, expected, tmp_path):
assert reloaded.tag_v2[271] == expected
def test_writing_int_to_bytes(tmp_path):
@pytest.mark.parametrize("value", (1, IFDRational(1)))
def test_writing_other_types_to_bytes(value, tmp_path):
im = hopper()
info = TiffImagePlugin.ImageFileDirectory_v2()
tag = TiffTags.TAGS_V2[700]
assert tag.type == TiffTags.BYTE
info[700] = 1
info[700] = value
out = str(tmp_path / "temp.tiff")
im.save(out, tiffinfo=info)

View File

@ -722,6 +722,8 @@ class ImageFileDirectory_v2(MutableMapping):
@_register_writer(1) # Basic type, except for the legacy API.
def write_byte(self, data):
if isinstance(data, IFDRational):
data = int(data)
if isinstance(data, int):
data = bytes((data,))
return data