我制作了一小段代码来上传文件,然后用imagemagik调整大小。我使用系统(“命令”)函数调用imagemagik来调整图像大小,但输出是一个大小为0字节的文件。什么可能出错?
答案 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不那么热衷,我还建议您确保在调整文件大小之前保存文件(原文存在吗?),并确保您的路径一致并且您实际上是点击文件系统上的正确位置。