html2canvas可以捕获javascript 3d“屏幕截图”吗?

Can html2canvas capture a javascript 3d 'screenshot'?

本文关键字:屏幕截图 3d javascript html2canvas      更新时间:2023-09-26

我看过一个html2canvas的例子,创建了一个html块的'截图'(例如:html2canvas的例子)。

我想做的是,使用javascript,捕获一个三.js(或任何js 3d库)场景的"屏幕截图"。

请记住,在决定"截图"之前,用户可能会玩(旋转等)3d场景。

html2canvas可以"捕获"3D场景吗?

编辑 see plunker for code参见工作解决方案的普朗

好吧

,由于 three.js 绘制了一个画布,我很确定您可以在不使用 html2canvas 的情况下复制它的当前状态。

function cloneCanvas(oldCanvas) {
    //create a new canvas
    var newCanvas = document.createElement('canvas');
    var context = newCanvas.getContext('2d');
    //set dimensions
    newCanvas.width = oldCanvas.width;
    newCanvas.height = oldCanvas.height;
    //apply the old canvas to the new one
    context.drawImage(oldCanvas, 0, 0);
    //return the new canvas
    return newCanvas;
}

感谢罗伯特·赫斯特(Robert Hurst)对这个主题的回答

关于html2canvas,文档的这一段让我相信它将能够复制canva,因为它没有被跨源内容污染。

局限性
脚本使用的所有图像都需要驻留在同一来源下,以便能够在没有代理帮助的情况下读取它们。同样,如果页面上有其他画布元素,这些元素已被跨源内容污染,它们将变得脏污,并且无法再被 html2canvas 读取。