我正在尝试使用Sinatra和RMagick做一些非常简单的事情。
1. 通过一个简单的表单上传图片文件。 2. 使用RMagick调整大小。 3. 然后将其存储在数据库中以进行持久化(与本题无关)。
但是,在查看RDocs并进行了无数次测试之后,我似乎无法使表单图像成为一个干净的RMagick对象。
这是目前对我有用的可怕的东西:
1. 通过一个简单的表单上传图片文件。 2. 使用RMagick调整大小。 3. 然后将其存储在数据库中以进行持久化(与本题无关)。
但是,在查看RDocs并进行了无数次测试之后,我似乎无法使表单图像成为一个干净的RMagick对象。
这是目前对我有用的可怕的东西:
def image_resize(img_data)
filecount = rand
writer = File.new("/tmp/#{filecount}.jpg", "w")
writer.puts(img_data)
writer.close
resized_image = Magick::ImageList.new("/tmp/#{filecount}.jpg").first
resized_image.crop_resized!(100,100, Magick::NorthGravity)
resized.format = 'jpeg'
resized_image.to_blob
end
#call the method with my form image data
image_resize(params[:image][:tempfile].read)
那么,我该如何做正确的明显之事,直接将我的表单图像数据插入到RMagick对象中,而不必写入和读取磁盘。
我尝试过各种读取Magick :: Image和ImageLists的方法,但只得到了大量错误信息。
感谢任何方向
-1.2.