[导入]On-the-fly thumbnailer method for a Rails 'Photo' controller


require 'RMagick'

class PhotoController < ApplicationController

[...snip...]

def render_resized_image
@photo=Photo.find(@params["id"])

maxw = @params["width"] != nil ? @params["width"].to_i : 90
maxh = @params["height"] != nil ? @params["height"].to_i : 90
aspectratio = maxw.to_f / maxh.to_f


pic = Magick::Image.from_blob(@photo.image)[0]


picw = pic.columns
pich = pic.rows
picratio = picw.to_f / pich.to_f

if picratio > aspectratio then
scaleratio = maxw.to_f / picw
else
scaleratio = maxh.to_f / pich
end

#breakpoint

thumb = pic.resize(scaleratio)

@response.headers["Content-type"][email protected]
end
end

Requires RMagick


Based on Thumbnailer in Ruby and RMagick


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

你可能感兴趣的:(controller)