我正在使用Spring MVC开发一个网站。我有一个表格,我问用户他的网站的URL。我需要在输入网址后向他显示网站的屏幕截图。
我应该在后端或前端生成图像吗?
我需要在他的仪表板上向用户显示图像。我无法决定每次都应该生成它还是将它存储在后端。存储在后端的性能会更好,而每次生成它都会向用户显示当前的屏幕截图。
答案 0 :(得分:2)
看看PhantomJS。您可以通过命令行生成png screenshot。
这是PhantomJS的一个脚本,它带有两个输入参数(url和输出文件):
var page = require('webpage').create();
var args = require('system').args;
var web_url = args[1];
var file_name = args[2];
page.viewportSize = { width: 1200, height: 1602 };
page.clipRect = {top:0, left: 0, width: 1200, height: 1602 };
page.open(web_url, 'GET', function () {
page.evaluate(function() {
document.body.bgColor = 'white';
});
var ret = page.render(file_name);
var exitcode = 0;
if(ret) exitcode = 1;
phantom.exit(exitcode);
});
然后你可以这样打电话给PhantomJS:
phantomjs scriptfile.js http://www.myweb.com outputfile.png