[导入]Thumbnailer in Ruby and RMagick

require 'RMagick'

maxwidth = 120

maxheight = 160

aspectratio = maxwidth.to_f / maxheight.to_f

imgfile = 'world'

pic = Magick::Image.read(imgfile + '.jpg').first

imgwidth = pic.columns

imgheight = pic.rows

imgratio = imgwidth.to_f / imgheight.to_f

imgratio > aspectratio ? scaleratio = maxwidth.to_f / imgwidth : scaleratio = maxheight.to_f / imgheight

thumb = pic.resize(scaleratio)

white_bg = Magick::Image.new(maxwidth, thumb.height)

pic = white_bg.composite(thumb, Magick::CenterGravity, Magick::OverCompositeOp)

pic.write(imgfile + '.thumb.jpg')

文章来源:http://snippets.dzone.com/posts/show/36