[导入]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"]=@photo.mime
end
end
Requires RMagick
Based on Thumbnailer in Ruby and RMagick
文章来源:http://snippets.dzone.com/posts/show/71
浙公网安备 33010602011771号