node.js - 如何在放大镜滴管下获取像素颜色?

标签 node.js windows macos electron

出于学习目的,我正在尝试创建一个桌面吸管,但我无法弄清楚如何检索跟随光标的放大镜后面的像素的颜色。

Pixelmator magnifying glass

在我的脑海中,我必须截取屏幕截图并在光标附近显示缩放和裁剪后的版本。 但如何在没有放大镜遮挡我想要的部分的情况下进行截图?

我想过在截屏的时候遮住放大镜,然后再重新显示,但对我来说似乎很不稳定。 Sip 或 Kelir 等其他工具如何做到这一点?

if (mouseCoordinates.x > offset) {
  hidePreview()
  const screenshot = takeScreenshot()
  showPreview(screenshot, mouseCoordinates)
}

我正在尝试使用 Node.js 和 Electron 来做到这一点,但我猜平台特定的 API 对此是必要的。

这是一个设计问题而不是实现问题,因此它可以适用于任何语言或平台:我会相应地进行调整。

最佳答案

In my head, I have to take a screenshot of the screen and display a zoomed and cropped version near the cursor. But how can I take screenshots without the magnifying glass masking the part I want?

为什么显示放大镜后要截图?为什么不在显示放大镜之前截图,以后用它来裁剪和查找像素值,你只需要一张截图,所以先截图

当用户从您的应用程序中移动模糊的东西时,您必须隐藏放大镜,对吗?因此,当用户再次关注您的应用时,在显示放大镜之前再截取一张屏幕截图,这样屏幕截图始终显示屏幕的最后状态


为了捕获屏幕,您可以在 OSX 上使用 screencapture 命令,安装 shelljs,执行命令并读取创建的屏幕截图文件

var shell = require("shelljs");  
shell.exec("screencapture screenshot.png", function(){
});

关于node.js - 如何在放大镜滴管下获取像素颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48288111/

相关文章:

regex - 如何使用 FINDSTR 获取带有简单或双引号的行

c - 当 DPI 设置为 150% 时关闭 Aero (Windows 7),全屏窗口仅覆盖任务栏

swift - 按下组合键时执行功能

swift - NSRunningApplication terminate() 返回 false

node.js - 获取从中调用模块的文件的路径?

node.js - Angularjs从express.js的 "views"文件夹中路由 "public"文件夹中的ejs静态文件

node.js - 将 flash 消息从路由器显示到 ejs View

node.js - Nginx、Node、Angular - 子文件夹 API/URL 配置

windows - 使用 Powershell 获取嵌套 OU

java - mac osx 上 java7 模态对话框的焦点问题