Swift 中的像素拾取

Pixel picking in Swift

我正在尝试创建一个功能(对于 macOS 11+ 应用程序),我从屏幕上选择一个像素(例如来自数字颜色选择器/任何颜色选择器的像素)。但是,我很难找到一种方法来做到这一点。

我试图对 AppStore 中的某些应用程序进行“逆向工程”,当我想选择像素时,应用程序会询问我是否要授予录制屏幕的权限,所以我猜他们正在“录制屏幕” " 然后他们从现场记录的 movie/picture 中提取像素。然而,这个解决方案似乎有点矫枉过正,我认为应该有更好的方法(一个很好的例子是不要求权限的数字色度计)。

您认为这可以通过一种简单明了的方式实现吗?另外,如果不是,我对“记录屏幕”并从剪辑中捕获像素(当然是实时)的猜测是否正确?

NSColorSampler 是在 macOS 10.15 (Catalina) 中引入的。您可以使用它使用系统内置的颜色选择界面从屏幕上采样颜色。它需要屏幕录制权限。

它在 WWDC 2019, Session 210, What’s New in AppKit for macOS

中的 5 分钟左右被提及

我可能会包装它,并采用混合方法,我在旧版本上使用旧方法(带有屏幕权限提示),在新版本上使用 NSColorSampler。