Need help with exifr?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

451 Stars 64 Forks MIT License 234 Commits 1 Opened issues


EXIF Reader

Services available


Need anything else?

Contributors list

= EXIF Reader {Gem Version}[]

EXIF Reader is a module to read metadata from JPEG and TIFF images.

== Examples require 'exifr/jpeg''IMG6841.JPG').width # => 2272'IMG6841.JPG').height # => 1704'IMG6841.JPG').exif? # => true'IMG6841.JPG').model # => "Canon PowerShot G3"'IMG6841.JPG').datetime # => Fri Feb 09 16:48:54 +0100 2007'IMG6841.JPG').exposuretime.tos # => "1/15"'IMG6841.JPG').fnumber.tof # => 2.0'enkhuizen.jpg').gps.latitude # => 52.7197888888889'enkhuizen.jpg').gps.longitude # => 5.28397777777778

require 'exifr/tiff''DSC0218.TIF').width # => 3008'DSC0218.TIF')[1].width # => 160'DSC0218.TIF').model # => "NIKON D1X"'DSC0218.TIF').datetime # => Tue May 23 19:15:32 +0200 2006'DSC0218.TIF').exposuretime.tos # => "1/100"'DSC0218.TIF').fnumber.to_f # => 5.0

== Logging warnings When EXIF information is malformed, a warning is logged to STDERR with the standard Ruby logger. Log to some other location by supplying an alternative implementation:

EXIFR.logger =

== Time zone support EXIF does not support time zones so this code does not support time zones. All time stamps are created in the local time zone with:


It is possible to change this behavior by supplying an alternative implementation. For those who prefer UTC:

EXIFR::TIFF.mktime_proc = proc{|args| Time.utc(args)}

Or when the application depends on ActiveSupport for time zone handling:

EXIFR::TIFF.mktime_proc = proc{|args|}

== XMP data access If you need to access XMP data you can use the xmp gem. More info and examples at

== Development and running tests

On a fresh checkout of the repository, run

bundle install
and then
bundle exec rake test

== Author R.W. van 't Veer

== Copyright Copyright (c) 2006-2020 - R.W. van 't Veer

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.