gpt4 book ai didi

ruby - RMagick 直接提交表单 图片来自 Sinatra

转载 作者:数据小太阳 更新时间:2023-10-29 08:02:03 24 4
gpt4 key购买 nike

我正在尝试使用 SinatraRMagick 做一些非常简单的事情。

  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.

最佳答案

您需要从临时文件中获取路径并将其传递给 Magick::Image 的read

举个例子:

post "/upload-photo" do
image = Magick::Image.read(params[:image][:tempfile].path)[0]
image.crop_resized! 100, 100, Magick::CenterGravity
store_image_data image.to_blob

redirect "/done"
end

关于ruby - RMagick 直接提交表单 图片来自 Sinatra,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580611/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com