exifrでExifを自在に操ってみた

こんにちは!kossyです!




さて、今回は画像に付記されることがあるExif情報をRubyで操作できるGem、
exifrの使い方について、ブログに残してみたいと思います。




環境
Ruby 2.6.3
exifr 1.3.9






# 使い方
exifrはjpegまたはtiff拡張子の形式の画像に対応しています。
https://ja.wikipedia.org/wiki/Exchangeable_image_file_format

画像はこちらをお借りしました。
https://photo-studio9.com/exif/

require 'exifr/jpeg'

image = EXIFR::JPEG.new('sample.jpeg')

# 画像の横幅を求める
$ image.width
=> 630

# 画像の縦幅を求める
$ image.height
=> 460

# exifデータが存在するかどうか
$ image.exif?
=> true

# 撮影した機材を文字列で表示
$ image.model
=> "iPhone"

# 撮影日をTimeクラスのインスタンスで返却
$ image.date_time
=> 2014-01-08 23:02:05 +0900

# シャッター速度
$ image.exposure_time.to_s
=> "1/17"

# 緯度をFloatクラスのインスタンスとして返す
$ image.gps.latitude
=> 35.31966666666667

# 経度をFloatクラスのインスタンスとして返す
$ image.gps.longitude
=> 139.54766666666666

このGemを使えば、例えば、
「アップロードされた画像の位置情報から、住所を自動出力する」みたいなこともできると思います。

geocoderあたりと組み合わせると良さそうです。
また別でブログに書いてみようかと思います。



勉強になりました。