Javascript 如何在不使用html2canvas的情况下将div转换为图像?

Javascript 如何在不使用html2canvas的情况下将div转换为图像?,javascript,jquery,Javascript,Jquery,我有一个div,其中包含一组通过CSS转换的元素。此div需要转换为图像 我尝试过使用html2canvas,但它不太支持转换元素,因此导出的图像与浏览器显示的图像完全不同。在不使用html2canvas的情况下,将具有样式化元素的div转换为图像的最佳方法是什么 无法与html2canvas很好地转换的样式: transform: perspective(100px) rotateY(10deg) rotateX(2deg) rotate(-11.5deg); html2canvas库广

我有一个div,其中包含一组通过CSS转换的元素。此div需要转换为图像

我尝试过使用html2canvas,但它不太支持转换元素,因此导出的图像与浏览器显示的图像完全不同。在不使用html2canvas的情况下,将具有样式化元素的div转换为图像的最佳方法是什么

无法与html2canvas很好地转换的样式:

transform:  perspective(100px) rotateY(10deg) rotateX(2deg) rotate(-11.5deg);


html2canvas库广泛用于直接从浏览器捕获web内容。但是,它可能无法很好地处理转换后的元素

正如许多人所建议的,在您的环境中,没有其他已知的前端库能够很好地工作。(你试过吗?)

另一种可靠的方法是在服务器端完成捕获。您可以将标记发送到服务器,使用无头浏览器渲染并获取图像

是一个很好的候选,并且基于Webkit。众所周知,它适用于大多数情况

然而,Phantom JS不再积极开发。但这对你的情况可能有帮助


据我所知,遗憾的是,除了使用画布,没有其他方法。也许你可以找到另一个库来代替html2canvas。如果你打开chromes devtool,你可以使用类似的命令,但我想这不是你想要的。。。要以编程方式执行此操作,您需要请求对节点的权限,并且要捕获节点,您需要确定元素相对于视口的位置,然后剪辑屏幕并将其捕获到画布元素。但是如果你使用类似的东西,那么Firexox也很容易。如果单击URL栏后的三点,其中一个选项是屏幕截图
var page = require('webpage').create();
page.open('http://www.google.com', function() {
    setTimeout(function() {
        page.render('google.png');
        phantom.exit();
    }, 200);
});