有没有这样的方法可以用node.js而不是浏览器选项卡捕获桌面?
我找了很多,但一个也没找到。
我想要的是使用node.js来构建桌面应用程序。
您可以使用
http://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback
和
https://en.wikipedia.org/wiki/Scrot
制作当前用户运行nodejs应用程序的屏幕截图。类似这样的东西(这是一个完整的expressJS示例):
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");
});
调整大小为400x300,将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");
});
对于新来者,
有一个名为桌面截屏的npm包,其目的完全相同。
这是
您可以在其中找到一个插件,屏幕截图将被保存到任何用户定义的路径。用户还可以指定屏幕截图捕获的时间间隔。此处
也许你应该把你的问题改写如下:
如何根据http客户端的请求捕获计算机主机的桌面屏幕,并将图像作为响应发送回
如果这就是您的实际意思,那么您可以使用本机编译器编写自己的附加模块。如需参考,请参阅本文)。