2010-03-03 19 views
8

Escribí una aplicación simple de Sinatra que generaba una imagen usando rmagick a partir de algunas entradas de usuario. La imagen se guarda en el directorio ./public con un nombre de archivo único. El nombre de archivo único se utiliza en el HTML generado por Sinatra para que cada usuario obtenga la imagen correcta. Una vez al día, un script elimina archivos de más de una hora. Esto es claramente un truco terrible, pero no tengo experiencia en la web.Cómo servir imágenes generadas con sinatra en ruby ​​

¿Hay alguna manera de servir la imagen rmagick en sinatra sin guardarla primero en el disco?

Respuesta

11

utilizar el método de Image#to_blob para convertir la imagen en memoria en una cadena:

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