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