C++でExifデータの読み書き

2016年5月16日 0 投稿者: khws4v1

最近Exifデータを弄る機会があるので、自分用にソフトウェアを作ろうとしている。
C++でExifデータを読み書きできるExiv2というライブラリがあるので、それを使うことにした。
Exiv2の簡単な使い方を書いていこうと思う。

サンプル画像

単9363レ EF65 1132

ここでは画像を扱う。
とりあえず、昨日撮ったEF65 1132の画像があるのでそれを使うことにする。

簡単な読み書き

"Exif.Image.ImageDescription"はExiv2での各Exifデータのkeyとなっている。
標準的なExifデータのkeyはここにある。ちなみに、メーカ独自のタグにも対応している。

Exifデータを全部出力

こんな感じでイテレータ使ってExifデータを全部出力することも可能。

まとめ

流れとしては、

  1. Exiv2::ImageFactory::openで画像を開く
  2. Exiv2::Image::readMetadataでExifデータを読み込む
  3. Exiv2::ExifData::operator[]で読み込んだExifデータを読み書きできる
  4. Exiv2::Image::setExifDataで画像データにExifデータを書き込む
  5. Exiv2::Image::writeMetadataで画像データをファイルに書き込み

ととても簡単。