もう一人のY君

iPhoneアプリのレビューやアップデートレビューなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU  MENU

【iPhoneショートカット】写真のメタデータを取得する

f:id:thetheorier:20220303144223p:plain

 撮影した写真データには標準で色んな情報が書き込まれています.

 そのデータをショートカットを使って取り出してみます.

 

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のiOSバージョン : iOS15.3.1

 

 

スポンサーリンク

 


 

 

 

ダウンロードと使い方

routinehub.co

 

f:id:thetheorier:20220303151904p:plain

 レシピを起動し、写真を一枚選択することで画像のように26項目を表示します.

(画像では露出時間のキーを誤ったため異なる結果になっています)

 

 測光方式の値がなぜか取り出せませんでした、対応していない写真を選んだ可能性もあります.

 

 

f:id:thetheorier:20220303152317p:plain

 ちなみに対象がスクリーンショットになるとほとんどの値が空になります.

 

 

 

メタデータの情報を取り出すには

f:id:thetheorier:20220303144402p:plain

 ショートカットには既に「イメージの詳細を取得」というアクションがあります.

 このアクションに欲しい情報があればいいのですが、シャッタースピードやF値といった情報はここからでは取り出せません.

 コンテンツグラフはもちろん、写真アプリからそれらの情報がちゃんと存在することは容易にわかるのですが、それをショートカットでどう取り出すのか…が問題です.

 

 

f:id:thetheorier:20220303144643p:plain

 これを解決したのは「名前を設定」アクションでした.

 これを使って写真自身の拡張子をjsonにします.

 そのJSONの中身を見ると・・・

 

 

f:id:thetheorier:20220303144818p:plain

 画像のような結果を返します(実際には下にもっと続きます).

 知識不足ですべてのキーの意味が分かるわけではないですが、少なくとも以下の情報が存在することがわかります.

 

 

キー
{TIFF}.Software OS
{TIFF}.DateTime 撮影日
{TIFF}.Orientation 画面の向き
{TIFF}.Model モデル
{TIFF}.Make メーカー
{Exif}BrightnessValue 露出値
{Exif}.ExposureTime 露出時間
{Exif}.MeteringMode 測光方式
{Exif}.FNumber F値
{Exif}.FocalLength 焦点距離
{Exif}.ShutterSpeedValue シャッタースピード
{Exif}.SceneType シーンタイプ
{Exif}.ApertureValue 絞り値
{Exif}.PixelYDimension 実行画像幅
{Exif}.WhiteBalance ホワイトバランス
{Exif}.ISOSpeedRatings ISO
{Exif}.ExposureMode 露光モード
{Exif}.LensModel レンズ
{Exif}.PixelXDimension 実行画像高さ
{Exif}.SensingMethod センサー方式
{Exif}.FocalLenIn35mmFilm 焦点距離(35mm換算)
{Exif}.ExposureBiasValue 露光補正値
PixelHeight 高さ
Depth 深度
Orientation 向き
PixelWidth

 見ての通り、「イメージの詳細を取得」にない情報がたくさんあります.

 今回はこれを一括で閲覧するレシピを組んだわけです.

 

 

レシピ

f:id:thetheorier:20220303151107p:plain

 まず「辞書」アクションを使って、キーにわかりやすい名前を、その値にメタデータのキーを組とします.

 必要なものだけでも当然大丈夫です.

 この辞書を"contents"とします.

 

 

f:id:thetheorier:20220303151248p:plain

 写真を一枚選択し、「名前を設定」アクションで拡張子が"json"となるようにします.

 (わざわざ変数におく必要はありませんでした)

 この写真をjson化したものを"dict"という名前でおきます.

 

 

f:id:thetheorier:20220303151401p:plain

 メタデータの辞書contentsのキーに対して「各項目を繰り返す」を適用します.

 辞書contentsの繰返し項目の値、つまり繰返し項目をキーとするメタデータのキーを取り出し、更に"."で分割して最後の項目を取得しておきます.

 辞書dictの、上で取得した辞書contentsの値、つまりメタデータのキーによる値を取り出します.

 1つ目でメタデータの名前(繰返し項目)、2つ目でメタデータキーの末尾、3つ目で辞書contentsの対応する値を取り出したので「テキスト」アクションで体裁を整え、変数に追加する操作を繰り返し、最後に結果を表示します.

 

 これでレシピは完成です.

 

 

 スクリーンショットでモデルやメーカーなども空になるのは意外でした.

 

 「名前を設定」は他の分野でも使えるのかもしれませんね.

 

 見ての通り、例えば「画面の向き」や「シーンタイプ」のように数字になっていて直接分からない情報もあります.

 とくに「向き」については「イメージの詳細を取得」で具体的に分かるのでこちらに分があります.

 双方メリットありデメリットあり…なので状況に応じて使い分けたり両方使うと良いですね.