This fork adds the ability to references lens_make and lens_model. It also adds the ability to get exif from a URL in addition to a file referenced [here](github.com/remvee/exifr/pull/30). It also fixed deprecated URI issue.
Note: I have basically no idea what I am doing. I use this with Jekyll to get exif data and display it under an image. It builds super slow. I think I have to turn it into a gem to get github pages or netlify to work? I don’t know.
<img src=“https://badge.fury.io/rb/exifr.svg” alt=“Gem Version” />
EXIF Reader is a module to read metadata from JPEG and TIFF images.
require 'exifr/jpeg' EXIFR::JPEG.new('IMG_6841.JPG').width # => 2272 EXIFR::JPEG.new('IMG_6841.JPG').height # => 1704 EXIFR::JPEG.new('IMG_6841.JPG').exif? # => true EXIFR::JPEG.new('IMG_6841.JPG').model # => "Canon PowerShot G3" EXIFR::JPEG.new('IMG_6841.JPG').date_time # => Fri Feb 09 16:48:54 +0100 2007 EXIFR::JPEG.new('IMG_6841.JPG').exposure_time.to_s # => "1/15" EXIFR::JPEG.new('IMG_6841.JPG').f_number.to_f # => 2.0 EXIFR::JPEG.new('enkhuizen.jpg').gps.latitude # => 52.7197888888889 EXIFR::JPEG.new('enkhuizen.jpg').gps.longitude # => 5.28397777777778 require 'exifr/tiff' EXIFR::TIFF.new('DSC_0218.TIF').width # => 3008 EXIFR::TIFF.new('DSC_0218.TIF')[1].width # => 160 EXIFR::TIFF.new('DSC_0218.TIF').model # => "NIKON D1X" EXIFR::TIFF.new('DSC_0218.TIF').date_time # => Tue May 23 19:15:32 +0200 2006 EXIFR::TIFF.new('DSC_0218.TIF').exposure_time.to_s # => "1/100" EXIFR::TIFF.new('DSC_0218.TIF').f_number.to_f # => 5.0
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 = SyslogLogger.new
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:
Time.local(..)
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| Time.zone.local(*args)}
If you need to access XMP data you can use the xmp gem. More info and examples at github.com/amberbit/xmp
On a fresh checkout of the repository, run ‘bundle install` and then `bundle exec rake test`
R.W. van ‘t Veer
Copyright © 2006-2020 - R.W. van ‘t Veer