こんにちは、最近カメラにハマっているid:takuji31です。
なお、この記事の一部は本日開催の関西モバイルアプリ研究会#21で発表された内容です。
Exifについて
ExifはExchangeable image file formatの略で、写真のメタデータを画像に埋め込む仕組みでJPEGやTIFFに使われます。
Exchangeable image file format - Wikipedia
記録内容は
など多岐にわたる一方で、GPSの情報がそのまま記録されることもあり個人情報の漏洩リスクも懸念されています。
最新版のバージョンは2.31で、CIPAのWebサイトから確認できます。
CIPA 一般社団法人カメラ映像機器工業会: CIPA規格類
http://www.cipa.jp/std/documents/j/DC-008-2016-J.pdf
Exif Support Library
Exif Support LibraryはExifの情報の操作を行えるSupport Libraryです。
Support Library 25.1.0から追加されました。
ExifInterafce自体はAPI5からあるのですが、対応しているタグがバージョンごとに違っていたりするので、Support Libraryが用意されたようですね。
対応フォーマット
以下の画像形式に対応しています。
有名どころのファイル形式は一通り対応していますね。なぜかTIFFには対応していなさそうです。
使ってみる
ExifInterface Support Libraryには ExifInterface
というクラスだけが含まれています(正確にはprivateなinnerクラスがいくつか含まれていますが)。
ExifInterface
のインスタンスを作成して、いくつか用意されているメソッドを使って操作する感じですね。
getAttribute
getAttributeInt
getAttributeDouble
それぞれ引数に属性の名前を指定するのですが、名前は定数で用意されています。以下はその一部です。
TAG_DATETIME
TAG_MODEL
TAG_ORIENTATION
TAG_APERTURE_VALUE
TAG_SHUTTER_SPEED_VALUE
TAG_ISO_SPEED_RATINGS
TAG_FOCAL_LENGTH
TAG_GPS_LATITUDE
試しに先日買ったニコンのD500で撮影した写真の情報を抜き出してみました。
- RAWのサムネイルの色がぶっ壊れてる
- 絞り値とシャッター速度が取れない
😇
まとめ
サンプルコードはこちらです。