EXIF 情報をコマンド一発で更新する
皆さんこんにちは!ラブグラフエンジニアの関口です!
突然ですが、皆さんは EXIF をご存知でしょうか?
EXIF とは Exchangeable Image File Format の略で撮影日時やカメラの設定などの写真に関するデータを保存したものになります。
詳しい説明はこちらの記事が分かりやすいです!
ラブグラフのアプリケーションでは写真に関する機能実装をすることが多く、その際に EXIF 情報を利用します。
今回の記事では EXIF 情報を扱う際に便利なツール ExifTool を紹介します!
ExifTool とは
ExifTool とは、様々なファイルのメタ情報を読み書き・編集するためのコマンドラインアプリケーションです。
ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files.
EXIF 情報を確認・更新するためのアプリケーションは他にもあるのですが、
ExifTool は 無料かつ CLI 上で操作できる点が他のサービスと比べて優れています。
実際に使ってみた
写真の撮影時間を利用する機能を開発する際に、動作確認として EXIF の撮影時間を変更したい時があります。そんな時にも ExifTool は便利です!
ExifTool のインストール方法は公式サイトから直接インストールする方法と Homebrew を通してインストールする方法の2種類あります。
brew を通してインストールする方法
$ brew install exiftool
ExifTool で撮影時間を変更するコマンド
ExifTool で撮影時間を編集するコマンドは以下のようになります。
コマンドの AllDates が撮影日時を表しています。
ExifTool では、画像に情報を追加、修正するとファイルが新規作成される仕様となっているのですが、
-overwrite_original
とつけることで、ファイルが新規作成されないようにしています。
$ exiftool -AllDates='2024:03:10 10:20:00' -overwrite_original /pictures/hoge_picture.jpg
1 image files updated
撮影時間が変更されたかどうかは以下のコマンドで確認できます。
撮影時間を表す Date/Time Original
、Create Date
が指定した 2024:03:10 10:20:00
に変更されていることが確認できます。
$ exiftool -time:all /pictures/hoge_picture.jpg
File Modification Date/Time : 2024:03:18 15:47:11+09:00
File Access Date/Time : 2024:03:18 15:47:14+09:00
File Inode Change Date/Time : 2024:03:18 15:47:11+09:00
Modify Date : 2024:03:10 10:20:00
Date/Time Original : 2024:03:10 10:20:00
Create Date : 2024:03:10 10:20:00
Metadata Date : 2021:02:17 03:52:21+09:00
History When : 2021:02:17 03:52:21+09:00
Profile Date Time : 2021:02:16 18:36:33
フォルダに格納されている複数の画像の撮影時間をまとめて編集することも可能です。
次のコマンドでは、test_picutes
というディレクトリに保存されている 150枚の画像の撮影時間が更新されたことを表しています。
$ exiftool -AllDates='2024:03:06 10:20:00' -overwrite_original ~/Downloads/test_pictures/
1 directories scanned
150 image files updated
おわりに
今回の記事では ExifTool の利用方法を紹介させていただきました。
画像ファイルを利用する開発者にとって少しでも参考になったら嬉しいです!
Discussion