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を上書きするので注意。
キーが妙に長いのが辛いねー。ま、楽だからいいけれど。
参考: