客户端解决方案
在客户端,您可以使用类似于使用HTML 5的库(例如:http://html2canvas.hertzen.com/)=)。
使用它,您可以使用以下内容:
html2canvas(document.getElementById("element-id"), {
onrendered: function(canvas) {
var image = new Image();
image.src = canvas.toDataURL("image/png");
}
});
服务器端解决方案
为了获得服务器端解决方案,您可以使用 PhantomJS(使用 Webkit)或 SlimerJS(使用 Gecko)。
一个很好的库是这两个库的包装器,名为 CasperJS。使用 CasperJS 可以编写以下代码:
casper.start(casper.cli.args[0], function() {
this.captureSelector(casper.cli.args[1], casper.cli.args[2]);
});
casper.run();
将它保存为screenshot.js
(只是一个示例名称,您也可以选择自己的名称),并使用类似以下方式运行:
casperjs screenshot.js (URL) (image path) (selector)
从任何语言翻译。
一种(可能更好的)替代服务器端的选择
另一个选项是使用Selenium,但这只在您的服务器上可以运行Java并手动安装浏览器时才有效(PhantomJS/SlimerJS/CasperJS则没有这些要求)。
仅在您需要完全模拟浏览器时使用它(也许在使用插件时...)
Selenium的最佳之处在于您可以使用包装器连接到它(使用Selenium Server),请查看文档以获取列表:http://code.google.com/p/selenium/w/list