DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

Thumbnailer In Ruby And RMagick

04.04.2005
| 12169 views |
  • submit to reddit
        
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')
    

Comments

Snippets Manager replied on Sun, 2006/07/02 - 5:46am

according to the rmagick documentation, "The thumbnail method is a fast resizing method suitable for use when the size of the resulting image is < 10% of the original." it should fit right in where you have thumb = pic.resize(scaleratio)

Snippets Manager replied on Thu, 2005/12/22 - 11:27pm

i'm pretty new to ruby etc ... but i guess the line white_bg = Magick::Image.new(maxwidth, thumb.height) should be white_bg = Magick::Image.new(maxwidth, thumb.rows)