如何在Rails中响应PNG或JPG并从HTML生成图像?

时间:2011-02-27 20:20:35

标签: ruby-on-rails-3 image-generation responders

我正在寻找一个宝石或解决方案来在控制器响应中生成图像。

如果能够在控制器中做到这一点会很好:

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代解决方案PDFKitprawn并正在寻找图像生成。

有人知道工作解决方案/示例吗?任何起点都将非常感激。

1 个答案:

答案 0 :(得分:14)

点击此处: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页面转换为图像。您可以使用wkhtmltoimage
http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltoimage-0.10.0_beta2-static-amd64.tar.bz2&can=4&q=

pdfkit没有像wkhtmltopdf这样的宝石,但它很容易使用。

此外,您可以使用pdfKIT gem,然后使用imagemagick将PDF转换为PNG。这也很容易。

<强> UPD

不使用SnapShot我更喜欢使用IMGKit gem

https://github.com/csquared/IMGKit