Gerhard
Gerhard

Reputation: 7051

How to serve generated images with sinatra in ruby

I wrote a simple Sinatra app that generate an image using rmagick from some user inputs. The image is saved in the ./public directory with a unique file name. The unique file name is used in the HTML generated by Sinatra so that each user gets the correct image. Once a day a script deletes files older than one hour. This is clearly a terrible hack but I have no web experience!

Is there any way to serve the rmagick image in sinatra without first saving it to disk?

Upvotes: 9

Views: 5460

Answers (1)

Josh Lee
Josh Lee

Reputation: 177520

Use the Image#to_blob method to turn the in-memory image into a string:

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

Upvotes: 13

Related Questions