如何使用node.js捕获正在运行的计算机主机的桌面屏幕
有没有这样的方式来捕获桌面与node.js不是浏览器选项卡?
我搜查了很多,但我没有find任何。
我想要的是使用node.js来构build桌面应用程序。
您可以使用
http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
和
https://en.wikipedia.org/wiki/Scrot
制作当前用户运行nodejs应用程序的屏幕截图。 像这样的东西(这是完整的例子):
var express = require('express'), childProcess = require('child_process'), app = express(); app.get('/screenshot.png', function(request,response){ childProcess.exec('scrot screenshot.png', function(err){ if(err1) { response.send(503,'Error creating image!'); } else { response.sendfile('screenshot.png') } }); }); app.listen(3000);
但这是相当缓慢的做法。
你为什么不直接调用外部程序?
例如,你可以调用import:
$ import -window root screenshot.png
代码:
var exec = require('child_process').exec; exec('import -window root screenshot.png', function (error, stdout, stderr){ // now you have the screenshot });
全分辨率
var screenshot = require('desktop-screenshot'); screenshot("screenshot.png", function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded"); });
调整到400px宽,保持长宽比
var screenshot = require('desktop-screenshot'); screenshot("screenshot.png", {width: 400}, function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded"); });
调整到400×300,将JPG质量设置为60%
var screenshot = require('desktop-screenshot'); screenshot("screenshot.jpg", {width: 400, height: 300, quality: 60}, function(error, complete) { if(error) console.log("Screenshot failed", error); else console.log("Screenshot succeeded"); });
也许你应该改变你的问题如下:
如何捕获运行在http客户端请求上的计算机主机的桌面屏幕,并作为响应发回图像
如果这就是你的意思,你可以使用本地编译器编写自己的附加模块 。 作为参考,看到这个职位 )。
对于新来者,
有一个叫做desktop-screenshot的npm包,用于完全相同的目的。
在这里
你可以find一个插件,在其中截屏并保存到任何用户定义的path。用户也可以指定一个截图截图的时间间隔。 这里