Как ответить в PNG или JPG в Rails и сгенерировать изображение из HTML? - PullRequest
10 голосов
/ 27 февраля 2011

Я ищу камень или решение для генерации изображения в ответе контроллера.

Было бы неплохо, если бы это можно было сделать в контроллере следующим образом:

respond_to :html, :png

def show
  ...
  respond_to do |format|
    format.html
    format.png { ??? }  # some html to png converter 
  end
end

Когда запрашивается формат png, ответ обрабатывается с шаблоном:

#show.png.haml
%h1
  Some title
%p
  Some content

Результатом должно быть изображение.

Я знаю о pdf решениях для генерации PDFKit , prawn и ищу создание изображений.

Кто-нибудь знает рабочий раствор / пример? Любая отправная точка будет очень цениться.

1 Ответ

14 голосов
/ 27 февраля 2011

Проверьте здесь: http://weblog.rubyonrails.org/2006/12/19/using-custom-mime-types

Mime::Type.register "image/png", :png

# then in your controller action
def show
  respond_to do |format|
    format.html { }
    format.png { }
  end
end

UPD

Как насчет генерации изображения.Если вам нужно конвертировать HTML-страницу в изображение.Вы можете использовать wkhtmltoimagehttp://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltoimage-0.10.0_beta2-static-amd64.tar.bz2&can=4&q=

Нет такого драгоценного камня, как pdfkit для wkhtmltopdf, но его легко использовать.

Также вы можете использовать камень pdfKIT и после этого конвертировать PDF в PNG сImageMagick.Это тоже довольно просто.

UPD

Вместо использования SnapShot Я предпочитаю использовать IMGKit gem

https://github.com/csquared/IMGKit

...