LoginSignup
42
44

More than 5 years have passed since last update.

最近カメラに凝っていますが、ストレージが安くなったこともあり、つい大量に撮影してしまって整理が大変です。
デジカメの写真にはEXIFというフォーマットで撮影情報が含まれているのはよく知られています。exifrはそれをrubyから扱うことのできるライブラリです。

まずgem install exifrでインストールします。
そして以下のようなコードで画像(jpgまたはtiff)からEXIF情報を取り出します。

get_exif_data.rb
@exif = EXIFR::JPEG.new('/path/to/file.jpg')

# カメラのモデル名
puts @exif.model # => "NIKON D7000"

# シャッタースピード。Rationalで返る
puts @exif.exposure_time.to_s # => "1/640"

# F値。Rationalで返る
puts @exif.f_number.to_f.to_s # => "5.6"

# レンズ焦点距離(ミリメートル)。Rationalで返る
puts @exif.focal_length.to_i # => "300"

# 35mm(いわゆるフルサイズ)換算のレンズ焦点距離
puts @exif.focal_length_in_35mm_film.to_i # => "450"

# ISO値
puts @exif.iso_speed_ratings # => "100"

# 更新日時。RAWを現像した場合などは撮影日時ではなくなるので注意
puts @exif.date_time

# 撮影日時
puts @exif.date_time_original

# 写真の縦横サイズ
puts @exif.pixel_x_dimension
puts @exif.pixel_y_dimension

さらに詳しくは@exif[0].to_hashのキーや、EXIFフォーマットの解説(こことか)を参考にして下さい。

撮影データをまとめてDBに入れたり、EXIF情報つきのフォトビューアを開発したり使い道は色々ありそうです。

42
44
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
44