image_size
measure image size using pure Ruby
formats: apng, bmp, cur, gif, ico, j2c, jp2, jpeg, jpx, mng, pam, pbm, pcx, pgm, png, ppm, psd, svg, swf, tiff, webp, xbm, xpm
Installation
gem install image_size
Bundler
Add to your Gemfile:
gem 'image_size', '~> 2.0'
Usage
image_size = ImageSize.path('spec/test.jpg')
image_size.format #=> :jpec
image_size.width #=> 320
image_size.height #=> 240
image_size.w #=> 320
image_size.h #=> 240
image_size.size #=> [320, 240]
Or using IO object:
image_size = File.open('spec/test.jpg', 'rb'){ |fh| ImageSize.new(fh) }
Any object responding to read and eof?:
require 'image_size'
image_size = ImageSize.new(ARGF)
Works with open-uri if needed:
require 'image_size'
require 'open-uri'
image_size = URI.parse('http://www.rubycgi.org/image/ruby_gtk_book_title.jpg').open('rb') do |fh|
ImageSize.new(fh)
end
image_size = open('http://www.rubycgi.org/image/ruby_gtk_book_title.jpg', 'rb') do |fh|
ImageSize.new(fh)
end
Note that starting with version 2.0.0 the object given to ImageSize will not be rewound before or after use.
So rewind if needed before passing to ImageSize and/or rewind after passing to ImageSize before reading data.
require 'image_size'
File.open('spec/test.jpg', 'rb') do |fh|
image_size = ImageSize.new(fh)
fh.rewind
data = fh.read
end
File.open('spec/test.jpg', 'rb') do |fh|
data = fh.read
fh.rewind
image_size = ImageSize.new(fh)
end
Licence
This code is free to use under the terms of the Ruby's licence.
Original author: Keisuke Minami [email protected].\ Further development 2010-2020 Ivan Kuchin https://github.com/toy/image_size