JRuby+javax.imageioを使うか、Ruby+RMagickを使うか

画像読み込んでwidth, heightを出力対決
画像46枚で

JRuby+javax.imageio

#!/usr/bin/env jruby
# -*- coding: utf-8 -*-
require 'java'
import 'java.lang.System'
import 'javax.imageio.ImageIO'
import 'java.awt.image.BufferedImage'

start = Time.now
ARGV.each{|name|
  begin
    img = ImageIO.read(java.io.File.new(name))
    puts "#{name} => #{img.width}, #{img.height}"
  rescue
    puts "#{name} => error"
  end
}

puts Time.now-start

だいたい9〜10秒くらい。
java.io.FileをimportしてしまうとRubyのFileクラスと重複してしまうので、スクリプト中でフルパスで呼び出す方が良い。


RMagick

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
require 'rubygems'
require 'RMagick'
include Magick

start = Time.now
ARGV.each{|name|
  begin
    img = Image.from_blob(File.read(name)).first
    puts "#{name} => #{img.rows}, #{img.columns}"
  rescue
    puts "#{name} => error"
  end
}

puts Time.now-start

3〜4秒
速い