XMP および IPTC メタデータを画像に読み書きしようとしています。それを行うために、私はpy3exiv2
ライブラリを使用しています。
ライブラリが例外をスローする一部の文字 (特にドイツ語のウムラウト) に問題があります。
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdf in position 2: invalid continuation byte
これが私の簡単な例です:
file_meta = pyexiv2.ImageMetadata(file_path)
file_meta.read()
print(file_meta["Iptc.Application2.Keywords"])
そして完全な例外:
Traceback (most recent call last):
File "/Users/rjendraszak/Workspace/10_Egnyte/30_CustomDev/dpaFoto/Phase2/merge-jpeg-with-xmp-phase-2/env/lib/python3.9/site-packages/pyexiv2/metadata.py", line 211, in _get_iptc_tag
return self._tags['iptc'][key]
KeyError: 'Iptc.Application2.Keywords'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/rjendraszak/Workspace/10_Egnyte/30_CustomDev/dpaFoto/Phase2/merge-jpeg-with-xmp-phase-2/env/lib/python3.9/site-packages/pyexiv2/metadata.py", line 246, in __getitem__
return getattr(self, '_get_%s_tag' % family)(key)
File "/Users/rjendraszak/Workspace/10_Egnyte/30_CustomDev/dpaFoto/Phase2/merge-jpeg-with-xmp-phase-2/env/lib/python3.9/site-packages/pyexiv2/metadata.py", line 214, in _get_iptc_tag
tag = IptcTag._from_existing_tag(_tag)
File "/Users/rjendraszak/Workspace/10_Egnyte/30_CustomDev/dpaFoto/Phase2/merge-jpeg-with-xmp-phase-2/env/lib/python3.9/site-packages/pyexiv2/iptc.py", line 111, in _from_existing_tag
tag._raw_values = _tag._getRawValues()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xdf in position 2: invalid continuation byte
誰かが同様の問題を抱えていて、すでに解決していますか?
ありがとう