我正在构建像Amblilight这样的东西,我需要尽快捕获屏幕(1920x1080)并处理它以获得LED的颜色。
我使用Node.js作为编程语言。我试图使用VNC协议捕获屏幕(使用我自己的客户端实现),但它给了我像1 FPS,并有3秒的延迟。我需要以最快的方式捕获运行node.js的计算机屏幕。
我正在使用基于Ubuntu的Linux发行版。
答案 0 :(得分:0)
这很难回答,因为屏幕捕获取决于系统。如果我要在MacOSX上为我当前的系统编写这种类型的东西,我会利用命令行进行屏幕截图。
//from Terminal
>screencapture ~/Desktop/test.png
然后将其合并到Node.JS中:
//screenshot.js
var file = '~/Desktop/test.png';
var worker = require('child_process');
var fs = require('fs');
worker.exec('screencapture ' + file, function(err, results) {
if(err) return console.error(err);
//process image
var imageBuffer = fs.readFileSync(file);
while(imageBuffer.read()) {
//process lines in buffer
}
});