その他
    ホーム 技術発信 DoRuby 画像ファイルからEXIF情報を取り出す

    画像ファイルからEXIF情報を取り出す

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    画像ファイルからEXIF情報を取り出すにはどうしたら良いのでしょうか?

    まず、そんな疑問に今回は挑戦しました(大げさ)。

    画像ファイルからEXIF情報を取り出すにはどうしたら良いのでしょうか?

    まず、そんな疑問に今回は挑戦しました(大げさ)。

     [概要]

    RubyのExifライブラリは幾つかあるようですが、現在も開発が進んでいるものが少ないようです。

    そんな中、

    http://rubyforge.org/projects/exifr

    を見つけました。

    ライセンスはRubyライセンスです。

    今回、このexifrを利用して、画像ファイルからEXIF情報を取得します。

     [目的]

    画像ファイルからEXIF情報、特にデジタルカメラのメーカー名、カメラ名を取得したいと思います。

    (今回はSONY DSC-W300で撮影した画像を利用します)

     [方法]

    [インストール]

    gemからインストールしてみます。

    sudo gem install exifr
    

    インストールはとても簡単です。

    gemが古い場合はインストール時にErrorが起こってしまいます。

    sudo gem install rubygems-update
    sudo update_rubygems
    

    をしてgemのバージョンを最新版にするといいでしょう

    [使用方法]

    では、実際にirbから使ってみましょう。

    tomonori:~# irb
    irb(main):001:0> require 'rubygems'
    irb(main):002:0> require 'exifr'
    irb(main):003:0> file = '/path/to/filename'
    irb(main):004:0> exif = EXIFR::JPEG.new(file)
    irb(main):005:0> exif.make
    => "SONY"
    irb(main):006:0> exif.model
    => "DSC-W300"
    irb(main):007:0> exif.width
    => 2048
    irb(main):008:0> exif.height
    => 1536
    irb(main):009:0> exif.date_time
    => Sat Dec 20 16:14:57 +0900 2008
    

     [まとめ]

    exifrというライブラリを利用することで簡単に画像ファイルからEXIF情報を取得できました。

    これを利用することで、カメラ情報などが画像から取得できます。

    今回は試しておりませんが、どのケータイから撮影されたものかもわかりますので、そのユーザが撮った画像であるかどうかの判断にも利用出来るかと思います。