RubyでGPSタグ付き画像を扱う

投稿日:



RubyでGPSタグ付きの画像を扱うならExifrがお勧め。

まずはrubygemsからExifrをインストール。

gems install extexif

以下、test.jpgに埋め込まれたGPSタグを緯度、経度、撮影日時のデータを表示するプログラム。

require "exifr"

def dms2ddd(dms)
# *.*.*.*形式を*.****形式に直す.
#dms =~ /(\d*?)\.(\d*?)\.(\d*?\.\d*?)/
mystr = dms.split(".")
return (mystr[0].to_f + (mystr[1].to_f / 60) + (mystr[2].to_f / 3600))
end

e = EXIFR::JPEG.new("test.jpg")

mylat = e.gps_latitude_ref == "N" ?
"#{e.gps_latitude[0].to_i}.#{e.gps_latitude[1].to_i}.#{e.gps_latitude[2].to_i}" :
"-#{e.gps_latitude[0].to_i}.#{e.gps_latitude[1].to_i}.#{e.gps_latitude[2].to_i}"
mylng = e.gps_longitude_ref == "E" ?
"#{e.gps_longitude[0].to_i}.#{e.gps_longitude[1].to_i}.#{e.gps_longitude[2].to_i}" :
"-#{e.gps_longitude[0].to_i}.#{e.gps_longitude[1].to_i}.#{e.gps_longitude[2].to_i}"

print "#{dms2ddd(mylat)},#{dms2ddd(mylng)},#{e.date_time_original}"



ブログランキング・にほんブログ村へ  ブログランキング・にほんブログ村へ

- スポンサードリンク -