我正在寻找一种将html标签动态转换为图像的方法......
这意味着,我希望能够制作一个带有路径的 image_tag,该方法返回从 html 创建的图像。
我一直在寻找解决方案,但无法想出一个合适的方法来解决这个问题......
有任何想法吗?
前知
我正在寻找一种将html标签动态转换为图像的方法......
这意味着,我希望能够制作一个带有路径的 image_tag,该方法返回从 html 创建的图像。
我一直在寻找解决方案,但无法想出一个合适的方法来解决这个问题......
有任何想法吗?
前知
IMGkit 可以完成这项工作(github 上的详细信息)
使用普通的旧 HTML+CSS 创建 JPG
kit = IMGKit.new('http://google.com')
kit.to_jpg
kit.to_jpeg
kit.to_png
kit.to_tif
kit.to_tiff
或在您的控制器中
@kit = IMGKit.new(render_as_string)
format.jpg do
send_data(@kit.to_jpg, :type => "image/jpeg", :disposition => 'inline')
end
我将在这里进行疯狂的猜测,并猜测您想将 HTML 转换为图像,因此请拍摄网页或其他内容的“快照”。我不确定如何一步到位,但一种方法是使用PDFKit转换为 PDF,然后使用 RMagick 转换为您想要的任何图像格式。
IMGKIT 为任何背景图像或其他资产要求具有绝对 URL 的 css。因此,您可以按照此链接https://coderwall.com/p/exj0ig和一些步骤动态生成它
A)将所有图片放入 rails app 的 assets/images 文件夹
B)如果不安装,请安装 gem 'sass-rails' https://github.com/rails/sass-rails
C)创建另一个 css 文件名为 css_file_name.css.sccs.erb
D)将所有其他 css 文件内容放入其中。
E)在 css 文件中,只需将您的图像文件名如下: background-image: image-url('image.png');
F)使用资产管道(http://guides.rubyonrails.org/asset_pipeline.html#how-to-use-the-asset-pipeline)运行以下命令作为您的应用程序模式:(1)开发模式:RAILS_ENV=development bundle exec rake assets:precompile (2) 生产模式:RAILS_ENV=production bundle exec rake assets:precompile
G)在你的配置/环境/
(1) 在 development.rb config.action_controller.asset_host = "YOUR LOCAL HOST URL ie YOUR_LOCALHOST_ADDRESS"
(2) 在 production.rb config.action_controller.asset_host = " http://assets.example.com " /你的地址/
H)最后将您的样式表与 IMGKIT 相关联,如下所示
html_content = "YOUR HTML CONTENT"
kit = IMGKit.new(html_content, height: 900, transparent:true, quality:10) /*YOUR SETTING*/
kit.stylesheets << "#{Rails.root}/public/assets/application.css"
file = kit.to_file(Rails.root + "public/pngs/" + "screenshot.png") /*YOUR IMAGE NAME*/
send_file("#{Rails.root}/public/pngs/screenshot.png", :filename => "screenshot.png", :type => "image/png",:disposition => 'attachment',:streaming=> 'true') /*YOUR ADDRESS WHERE U WANT TO STORE PNG FILE*/
I)重新启动服务器并享受!!!!
[注意:每次更改后,请运行 assets pipline 命令以获取由 .sccs.erb 扩展文件制成的最新 application.css。]