pythonのpyexiv2でExifをごにょごにょする

前にPILでExifを読む方法を書いたけれど、今回は書き込む方法。

どうやらPILでは出来ないらしいので、pyexiv2ってライブラリを使います。 ダウンロードは公式サイトからどうぞ。インストールは適当に。

Exifデータを読み込む

>>> img = pyexiv2.ImageMetadata('test.jpg')
>>> img.read()

>>> img.exif_keys
[ ... keyのリスト ... ]

>>> value = img['Exif.Image.DateTime']
>>> value.value
datetime.datetime(2014, 1, 24, 15, 40, 16)
>>> value.raw_value
'2014:01:24 15:40:16'

みたいな感じ。

時間とかパースした状態で返してくれるから、もしかしたらPIL使うよりも楽かも。 対応している要素の種類も多いっぽいし。

Exifデータを書き込む

>>> img = pyexiv2.ImageMetadata('test.jpg')
>>> img.read()

>>> img['Exif.Image.UserComment'] = 'this is test'

>>> img.write()

こんな感じで書き込める。 結構簡単。

他の画像からExifデータだけコピーする

>>> src = pyexiv2.ImageMetadata('src.jpg')
>>> src.read()

>>> dst = pyexiv2.ImageMetadata('dst.jpg')
>>> dst.read()

>>> src.copy(dst)

>>> dst.write()

以上、これだけでコピーできる。dst.jpgを上書きするので注意。


キーが妙に長いのが辛いねー。ま、楽だからいいけれど。

参考: