如何将HTML元素转换为canvas元素?能够暂时将常规元素转换为a将非常有用canvas。例如,假设我有一个div我要翻转的样式。我想动态创建一个画布,“渲染” HTMLElement到画布中,隐藏原始元素并为画布设置动画。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
抱歉,浏览器不会将HTML呈现到画布中。
如果可以,这将是一个潜在的安全风险,因为HTML可以包含来自第三方网站的内容(特别是图像和iframe)。如果canvas
可以将HTML内容转换为图像然后您读取图像数据,则可能从其他站点提取特权内容。
要从HTML获取画布,您必须使用drawImage
和从头开始编写自己的HTML渲染器fillText
,这是一项潜在的巨大任务。这里有一次这样的尝试,但它有点狡猾,距离完成还有很长的路要走。(它甚至尝试从头开始解析HTML / CSS,我认为这很疯狂!从应用了样式的真实DOM节点开始更容易,并getComputedStyle
使用offsetTop
et al 读取样式的部分使用和相对位置。)
暮色呼如
TA贡献1853条经验 获得超9个赞
在natevw引用的Mozdev帖子的基础上,我开始了一个小项目,在Firefox,Chrome和Safari中将HTML渲染到画布。例如,您可以简单地执行以下操作:
rasterizeHTML.drawHTML('<span class="color: green">This is HTML</span>' + '<img src="local_img.png"/>', canvas);
源代码和更广泛的示例在这里。
- 3 回答
- 0 关注
- 2003 浏览
添加回答
举报
0/150
提交
取消