将css3转换后的元素渲染为canvas / image

时间:2012-03-18 20:28:09

标签: image html5 css3 canvas

基本上,我想将页面的某个DOM元素保存为图像,并将其存储在服务器上(并允许用户将图像保存到本地磁盘)。我认为当前这样做的唯一方法是渲染画布,它允许我通过AJAX发送图像数据,并在DOM中制作图像元素。我找到了promising library,但我的DOM元素有

  1. 多个透明背景
  2. css 3d tranforms
  3. html2canvas就失败了。目前有没有办法整齐地保存DOM元素当前状态的图像表示,以及它的所有CSS3荣耀?

2 个答案:

答案 0 :(得分:3)

浏览器可能永远不会允许DOM元素真实地呈现为画布,因为在能够做到这一点时存在非​​常严重的安全问题。

你最好的选择是html2canvas加上你自己的黑客攻击。您可能只需要以自定义方式实现自己的渲染代码。使用drawImage调用时,多个背景应该是可行的,当画布2D获得setTransform()时,您可能能够在css3变换中工作(我认为这只是在规范的下一个版本中)。

答案 1 :(得分:1)

在CSS3开发和交叉浏览器支持的这个阶段,如果不编写自己的html2canvas扩展,这可能是不可能的。

您可以尝试深入了解Google Chrome错误报告,因为它们允许您发送网页的当前快照。但我认为这是JS api中没有的一些内部功能。

此外,我认为这很容易被用于间谍用户,因此不要指望浏览器开发团队提供任何官方支持。