是否可以(通过标准JS或某些浏览器扩展)获取DOM元素的图像数据?
我想的用法如下:
可以这样做吗?有没有这样的建议?
答案 0 :(得分:4)
我能想到的唯一方法是将元素渲染到HTML5画布对象。这至少很难说。我通过快速谷歌搜索找到的一个这样的渲染引擎可以在http://www.isogenicengine.com/2011/08/19/rendering-html-css-to-canvas/
找到其他显然存在,包括:
一旦绘制到画布,您就可以检索一个数据网址,该网址可用于设置图像和css的src
属性,并且很可能使用以下方法设置WebGL纹理。
var canvas = document.getElementById("mycanvas");
var img = canvas.toDataURL("image/png");
此外,如果您专门针对Firefox,他们拥有专有功能,可以完全满足您的需求。 https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas#Rendering_Web_Content_Into_A_Canvas
答案 1 :(得分:2)
使用http://html2canvas.hertzen.com/在画布上获取元素,然后http://www.nihilogic.dk/labs/canvas2image/将其转换为“data:”URL。
答案 2 :(得分:1)
您可能需要查看dom-to-image库,了解计划中的图像生成部分。
var parent = document.getElementById('my-node-parent');
var node = document.getElementById('my-node');
domtoimage.toPng(node).then(function (pngDataUrl) {
parent.removeChild(node);
for (var i = 0; i < 10; i++) {
var img = new Image();
img.src = pngDataUrl;
parent.appendChild(img);
}
});
这是jsfiddle