如何使用节点捕获运行计算机主机的桌面屏幕.js



有没有这样的方法可以用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客户端的请求捕获计算机主机的桌面屏幕,并将图像作为响应发送回

如果这就是您的实际意思,那么您可以使用本机编译器编写自己的附加模块。如需参考,请参阅本文)。

相关内容

最新更新