所以,这基本上我很好奇:
有什么想法吗?指出我正确的方向也是受欢迎的。
提示:我对原生的Objective-C / Cocoa方法更感兴趣。
答案 0 :(得分:1)
基本上,DigitalColor Meter获取鼠标坐标,在该区域周围获取CGImageRef屏幕截图,然后访问原始像素数据以计算RGB值。
您可以使用nm
命令发现应用程序调用的API。在这种情况下:
nm /Applications/Utilities/DigitalColor\ Meter.app/Contents/MacOS/DigitalColor\ Meter
这揭示了一些有趣的电话:
U _CGDisplayBounds
U _CGGetDisplaysWithPoint
U _CGSCaptureWindowsContentsToRectWithOptions
U _CGSCurrentInputPointerPosition
U _CGSGetOnScreenWindowCount
U _CGSGetOnScreenWindowList
CGS *例程是私有SPI - 从好的方面来看,有一个名为CGWindowListCreateImage()
获得CGImageRef后,您可以使用以下方式访问原始像素数据:
CGImageGetDataProvider
CGDataProviderCopyData