Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
rails将html转换为图像_Html_Ruby On Rails_Ruby_Image_Rmagick - Fatal编程技术网

rails将html转换为图像

rails将html转换为图像,html,ruby-on-rails,ruby,image,rmagick,Html,Ruby On Rails,Ruby,Image,Rmagick,我正在寻找一种方法来转换html标记到一个动态图像 这意味着,我希望能够创建一个image_标记,该标记带有一个方法的路径,该方法返回从html创建的图像 我一直在寻找解决方案,但却找不到合适的方法来解决这个问题 有什么想法吗 Maechi我想在这里做一个大胆的猜测,猜测您想要将HTML转换为图像,所以拍摄一个网页或其他东西的“快照”。我不确定如何一步到位,但有一种方法是使用转换为PDF,然后使用RMagick转换为您想要的任何图像格式。IMGkit可以完成这项工作() 使用普通的旧HTML+C

我正在寻找一种方法来转换html标记到一个动态图像

这意味着,我希望能够创建一个image_标记,该标记带有一个方法的路径,该方法返回从html创建的图像

我一直在寻找解决方案,但却找不到合适的方法来解决这个问题

有什么想法吗


Maechi

我想在这里做一个大胆的猜测,猜测您想要将HTML转换为图像,所以拍摄一个网页或其他东西的“快照”。我不确定如何一步到位,但有一种方法是使用转换为PDF,然后使用RMagick转换为您想要的任何图像格式。

IMGkit可以完成这项工作()

使用普通的旧HTML+CSS创建JPG

或者在你的控制器里

@kit = IMGKit.new(render_as_string)

format.jpg do
  send_data(@kit.to_jpg, :type => "image/jpeg", :disposition => 'inline')
end

IMGKIT要求css具有任何背景图像或其他资源的绝对url。 因此,您可以按照以下链接和一些步骤动态生成它

A)将所有图像放入rails应用程序的资产/图像文件夹中

B)如果未安装,请安装gem'sass rails'

C)创建另一个css文件名为css\u file\u name.css.sccs.erb

D)将所有其他css文件内容放入其中

E)在css文件中,只需输入您的图像文件名,如下所示: 背景图像:图像url('image.png')

F)使用资产管道() 以应用程序模式运行以下命令: (1) 开发模式:RAILS\u ENV=开发包exec rake资产:预编译 (2) 生产模式:RAILS\u ENV=生产包exec rake资产:预编译

G)在您的配置/环境中/

(1) In development.rb config.action\u controller.asset\u host=“您的本地主机URL,即您的本地主机地址”

(2) 在生产中.rb config.action\u controller.asset\u host=“”/您的地址/

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*/
html\u content=“您的html内容”
kit=IMGKit.new(html_内容,高度:900,透明:true,质量:10)/*您的设置*/
kit.stylesheets“screenshot.png”、:type=>“image/png”、:disposition=>“attachment”、:streaming=>“true”)/*您要存储png文件的地址*/
I)重新启动服务器并享受


[注意:每次更改后,请运行assets pipline命令以获取最新的application.css,该文件由.sccs.erb扩展名文件创建。]

阅读两遍后,我仍然不明白你想实现什么。请让每个人都知道:1)为什么和2)你说的是什么标记类型?图像是显示一组标记的html代码的图像,是在特定浏览器中呈现的页面图像,还是你试图获取页面的特定部分,说出一个段落标记,并将其转换为一个图像,将该段落显示为一个图像-一个文本到图像生成器。还是完全是别的?我也对这个感兴趣。我想1)在html中呈现页面2)将页面转换为jpeg 3)从服务调用中实时返回jpeg。下面的链接有人想这样做的原因是将复杂的html版面转换为电子邮件友好的版面。没有任何参数的字符串是什么?我不明白,有人能给我指个地方吗?并且应该是渲染到字符串?在任何情况下,它都能做什么?您能将其中一个“kit”编辑到一个文件中,以便通过FTP发送吗?@JakubKuchar第一个参数可以是要呈现为字符串的视图的路径,例如“orders/summary”。文档说得最好:它与render类似,只是它不设置响应体,并且应该保证始终返回字符串。如果您希望将HTML转换为tiff文件
IMGKit
,这是不够的,因为tiff支持已从基础
wkhtmltoimage
应用程序中删除。相关承诺:
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*/