如何用红宝石中的sinatra提供生成的图像

时间:2010-03-03 11:08:09

标签: ruby image sinatra rmagick

我写了一个简单的Sinatra应用程序,它使用来自某些用户输入的rmagick生成图像。图像以唯一的文件名保存在./public目录中。在Sinatra生成的HTML中使用唯一文件名,以便每个用户获取正确的图像。每天一次脚本删除超过一小时的文件。这显然是一个可怕的黑客,但我没有网络经验!

有没有办法在没有先将它保存到磁盘的情况下在sinatra中提供rmagick图像?

1 个答案:

答案 0 :(得分:12)

使用Image#to_blob方法将内存中的图像转换为字符串:

get '/' do
  content_type 'image/png'
  img = Magick::Image.read('logo:')[0]
  img.format = 'png'
  img.to_blob
end