Merge pull request #7840 from radarhere/write_undefined

This commit is contained in:
Hugo van Kemenade 2024-03-11 17:41:13 +02:00 committed by GitHub
commit 4e92ee0818
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 2 deletions

View File

@ -224,14 +224,17 @@ def test_writing_other_types_to_bytes(value: int | IFDRational, tmp_path: Path)
assert reloaded.tag_v2[700] == b"\x01"
def test_writing_other_types_to_undefined(tmp_path: Path) -> None:
@pytest.mark.parametrize("value", (1, IFDRational(1)))
def test_writing_other_types_to_undefined(
value: int | IFDRational, tmp_path: Path
) -> None:
im = hopper()
info = TiffImagePlugin.ImageFileDirectory_v2()
tag = TiffTags.TAGS_V2[33723]
assert tag.type == TiffTags.UNDEFINED
info[33723] = 1
info[33723] = value
out = str(tmp_path / "temp.tiff")
im.save(out, tiffinfo=info)

View File

@ -790,6 +790,8 @@ class ImageFileDirectory_v2(_IFDv2Base):
@_register_writer(7)
def write_undefined(self, value):
if isinstance(value, IFDRational):
value = int(value)
if isinstance(value, int):
value = str(value).encode("ascii", "replace")
return value