前提・実現したいこと
jpg形式の画像にタグをコーディングしたいのですが、情報取得の段階で詰まってしまいました。
エラーメッセージもシンプルで、どこをどう改善すればいいかわかりません。
有識者の方、知恵を貸してください!
エラーメッセージ
python
1KeyError: 'exif'
該当のソースコード
python
1import piexif 2 3#エンコード関数 4def encode(s): 5 b = s.encode('utf-16-le') + b'\x00\x00' 6 return tuple([int(i) for i in b]) 7 8#タグ設定関数 9def Tag(filename, keyword): 10 im = Image.open(filename) 11 exif_dict = piexif.load(im.info["exif"]) 12 keyword = encode(keyword) 13 exif_dict["0th"][piexif.ImageIFD.XPKeywords]= keyword 14 exif_bytes = piexif.dump(exif_dict) 15 im.save(filename, "jpeg", exif=exif_bytes) 16 17Tag("任意のファイルパス", "任意のタグ名") 18
コードはネットの情報を参考にしたものです。
ネットを調べても同じエラー例が少なく、困っています。
追記:試したこと
画像の情報を調べる方法を幾つかご回答いただいたので、試してみました。
python
1# (1) 2>>>print(im.info) 3{'jfif': 257, 'jfif_version': (1, 1), 'jfif_unit': 0, 'jfif_density': (1, 1)} 4 5# (2) 6>>>print(type(im)) 7<class 'PIL.JpegImagePlugin.JpegImageFile'> 8 9# (3) 10>>>print(im) 11<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=722x966 at 0x222D4C7FCD0>
補足情報(FW/ツールのバージョンなど)
windows10
Python 3.8.3
piexif 1.1.3
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。