写真データからEXIFデータを取り出す方法

なんとなく、UIImageやNSImageで取り出せると思ってたけど、違いました。
結構手順が必要です。

具体的には、UIImage等には、EXIF情報はなくて、そのままでは取得できない。
実際は、EXIFの情報は、JPGファイルに存在するので、そのファイルにアクセスすることが必要。

ここでは、UIImagePickerで選択したファイルから取得する方法を説明します。

手順1
Image取得できているか確認
まずは、UIImagePickerのコールバックでイメージが取得できたか確認。編集されていないものなら.originalImageで取得。ここでは、ユーザーに編集を許可しているダイアログを使用しているため、.editedImageを使用。
手順2
imageへのパス取得
残念ながら渡されるUIImageのデータからは取得できないので、Imageの元となったファイルへのパスを、imgURLとして取得
手順3
CIImageの作成
取得したパスに存在するファイルからCIImageを作成します。
手順4
CIImageからEXIFの取得
このCIImageからEXIF情報を取得できるので、prorpertiesに保存されているEXIF情報を取得。キーは、kCGImagePropertyExifDictionaryを使って取得できる。戻り値のタイプは、[String:Any]
手順5
EXIFから取得してみる
例えば、撮影日として、kCGImagePropertyExifDateTimeOriginalを使用するならば、辞書から取得できる。(厳密には取得できるかもしれないし、取得できないかもしれないので、毎回のチェックが必要のハズ)
取得できるかもしれないキーの一覧は、Appleのドキュメントを参照のこと。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です