ImageScienceつかってみた

ちょっとデジカメの画像をリサイズしなきゃいけないことがあり、モテる Ruby! - Ruby会議 2007 - 川o・-・)<2nd lifeで紹介されていたImageScienceを使ってみた。

$ ruby resize.rb 1280 853 orginal

のように、widht height 画像ファイルのディレクトリのように引数をわたすと、"widthxheight"というディレクトリを作成し、リサイズして同じ名前で保存します。

require 'rubygems'
require 'image_science'
width  = ARGV.shift.to_i
height = ARGV.shift.to_i
target_dir =  [width , height].join("x")
Dir.mkdir(target_dir) unless FileTest.directory? target_dir
Dir.glob("#{ARGV[0]}/*").each do |fpath|
        fname = File.basename(fpath)
	ImageScience.with_image(fpath) do |img|
	w = width
	h = height
	if img.width < img.height
		w = height
		h = width
	end
		img.resize(w,h) do |im|
			save_name = [target_dir,fname].join("/")
			im.save save_name
		end
	end
end

おかしげなところつっこんでもらえるとありがたいです。