RubyでEXIFの情報を読み取る
カメラをレンタルしたことは以前の記事で書きました。このカメラ「Canon PowerShot G5 X Mark II」で撮影した 「RAW ファイル」の EXIF 情報をプログラムから読み取るのが今回の話です。
https://note.com/ego_station/n/n54b87af4c3a4
前回(下記)の記事の続きになります。
https://note.com/ego_station/n/nb53e4f40aa37
目次
1. EXIF とは
EXIF(Exchangeable Image File Format)は、デジタルカメラやスマートフォンなどのデジタル画像ファイルに埋め込まれるメタデータのフォーマットです。EXIF 情報は、画像の撮影時の詳細な情報や設定値を含んでおり、以下のような情報を提供します。
- 撮影情報: カメラのメーカーやモデル、撮影日時、シャッタースピード、絞り値、ISO 感度などの技術的な詳細が含まれます。これにより、画像の撮影条件や設定がわかります。
- カメラ設定: カメラの設定に関する情報が含まれます。露出モード、ホワイトバランス、フラッシュの使用、焦点距離、レンズの情報などが含まれます。
- 位置情報: カメラやスマートフォンの GPS 機能が有効になっている場合、撮影場所の緯度と経度の情報が含まれます。これにより、画像が撮影された位置を特定することができます。
2. mini_exiftool モジュールのインストール
1. exiftool をインストールします。
① 公式ドキュメントの
MacOS Package の「ExifTool-XX.dmg」のリンクをクリックしてダウンロードします
② ダウンロードした 「dmg」ファイルをダブルクリックして、インストールを完了します。
「開発元が未確認のため開けません」のエラーが出た場合は次の記事を参考にして下さい。
https://soundability.tokyo/pc/20019/
③ ターミナルで 「exiftool -ver」コマンドを打ちバージョンが表示されることを確認する。
exiftool -ver
12.62
2.RubyGems を使って mini_exiftool をインストールします。
gem install mini_exiftool
Fetching mini_exiftool-2.10.2.gem
+-----------------------------------------------------------------------+
| Please ensure you have installed exiftool at least version 7.65 |
| and it's found in your PATH (Try "exiftool -ver" on your commandline).|
| For more details see |
| https://exiftool.org/install.html |
| You need also Ruby 1.9 or higher. |
| If you need support for Ruby 1.8 or exiftool prior 7.65 install |
| mini_exiftool version < 2.0.0. |
+-----------------------------------------------------------------------+
Successfully installed mini_exiftool-2.10.2
Parsing documentation for mini_exiftool-2.10.2
Installing ri documentation for mini_exiftool-2.10.2
Done installing documentation for mini_exiftool after 0 seconds
1 gem installed
3. RAW データの EXIF 情報を取得
次の写真の EXIF 情報を読み取ります。
プログラム
require 'mini_exiftool'
file_path = '/Volumes/Untitled/DCIM/100CANON/IMG_9710.CR3'.freeze
photo = MiniExiftool.new(file_path)
puts "カメラメーカー: #{photo['Make']}" # カメラのメーカ名
puts "モデル: #{photo['Model']}" # カメラのモデル名
puts "撮影日: #{photo['DateTimeOriginal'].strftime('%Y年%m月%d日')}" # 撮影日
結果
$ ruby exif_info.rb
カメラメーカー: Canon
モデル: Canon PowerShot G5 X Mark II
撮影日: 2023年06月01日
ちなみに最終目的は、「日付_モデル名_場所」のフォルダーを 作って、RAW データを Lightroom 管理下のフォルダーに振り分けることです。
ですから、EXIF から取得する項目としては、「モデル」と 「撮影日」が取得出来れば目的は達成出来ます。
次へ続きます。(予定)