图像在轨道上的红宝石中调整大小

时间:2011-12-15 12:22:27

标签: ruby-on-rails image-resizing

像这样我目前正在我的ruby应用程序中上传文件(图片)..我需要在上传后调整图片大小...请帮助调整图片大小

uploaded_io = params [:category] ​​[:thumb]

if uploaded_io != ""
  name = uploaded_io.original_filename
  if(FileTest.exist?("#{RAILS_ROOT}/public/data/#{name}"))
    id = Category.maximum('id').to_s
    id = id.to_i+ 1
    name =id.to_s+"_"+name
  end

由于

2 个答案:

答案 0 :(得分:4)

如果你已经安装了imagemagick,那么使用ImageScience或MiniMagick,它们都会使用更少的资源并且工作更快,并且只是作为一个普通的宝石安装(实际上为图像科学安装了一点点)

ImageScience:

ImageScience.with_image("#{RAILS_ROOT}/public/data/#{name}") do |image|
  image.thumbnail(100) do |thumb|
    thumb.save <path_to_small_image to be saved>
  end     
end

MiniMagick:

MiniMagick::Image.new("#{RAILS_ROOT}/public/data/#{name}").resize "100x100"

答案 1 :(得分:1)

尝试RMagick!

require 'RMagick'

img = Image.new name
thumb = img.scale(125, 125)
thumb.write "thumb.gif"

http://www.imagemagick.org/RMagick/doc/comtasks.html#thumb