rails,图片上传和使用imagemagick调整大小

时间:2010-10-30 10:01:43

标签: file-upload ruby-on-rails-3 imagemagick

我制作了一小段代码来上传文件,然后用imagemagik调整大小。我使用系统(“命令”)函数调用imagemagik来调整图像大小,但输出是一个大小为0字节的文件。什么可能出错?

1 个答案:

答案 0 :(得分:2)

我建议使用RMagick,这是一个围绕imagemagick的ruby包装器。这将有助于保持事物更像红宝石,并且通常有用。

Google会帮助(或者为RMagick进行stackoverflow),但步骤类似于(我假设Rails 3):

在application.config中:

gem 'rmagick'

然后,在你的控制器中:

require 'RMagick'

def create
  @upload_io = params[:image_field]
  @filename = @upload_io.original_filename
  @filepath = Rails.root.join('public', 'images', @filename)
  File.open(@filepath) do |file|
    file.write(image_io.read)
  end

  @original = Magick::Image.read(@filepath)

  @thumbnail = @original.resize_to_fit 75 75
  @thumbnail.write(Rails.root.join('public', 'images', 'sm_' + filename)
end

如果您对RMagick不那么热衷,我还建议您确保在调整文件大小之前保存文件(原文存在吗?),并确保您的路径一致并且您实际上是点击文件系统上的正确位置。