2010-03-03 20 views
8

Napisałem prostą aplikację Sinatra, która generuje obraz za pomocą rmagick z niektórych danych wejściowych użytkownika. Obraz zostanie zapisany w katalogu ./public z unikatową nazwą pliku. Unikalna nazwa pliku jest używana w HTML generowanym przez Sinatra, aby każdy użytkownik otrzymał poprawny obraz. Raz dziennie skrypt usuwa pliki starsze niż jedna godzina. To jest oczywiście straszne włamanie, ale nie mam żadnych internetowych doświadczeń!Jak wyświetlać wygenerowane obrazy za pomocą sinatry w rubinach

Czy istnieje sposób, aby obsłużyć obraz rmagick w grze sinatra bez uprzedniego zapisania go na dysku?

Odpowiedz

11

Użyj metody Image#to_blob obrócić obraz w pamięci na ciąg znaków:

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