だから、これは基本的に私が興味を持っていることです:
- この小さなツールは、どのようにしてマウスの下の領域(および特定のピクセル)を取得しますか?
- 次に、選択したポイントのRGB値をどのように分析しますか?
何か案は?私を正しい方向に向けることも歓迎されます。
ヒント:ネイティブのObjective-C/Cocoaアプローチにもっと興味があります。
だから、これは基本的に私が興味を持っていることです:
何か案は?私を正しい方向に向けることも歓迎されます。
ヒント:ネイティブのObjective-C/Cocoaアプローチにもっと興味があります。
基本的に、DigitalColor Meterはマウス座標を取得し、その領域の周囲のCGImageRefスクリーンショットを取得してから、生のピクセルデータにアクセスしてRGB値を計算します。
コマンドを使用して、アプリケーションが呼び出すAPIを見つけることができますnm
。この場合:
nm /Applications/Utilities/DigitalColor\ Meter.app/Contents/MacOS/DigitalColor\ Meter
これはいくつかの興味深い呼び出しを明らかにします:
U _CGDisplayBounds
U _CGGetDisplaysWithPoint
U _CGSCaptureWindowsContentsToRectWithOptions
U _CGSCurrentInputPointerPosition
U _CGSGetOnScreenWindowCount
U _CGSGetOnScreenWindowList
CGS *ルーチンはプライベートSPIです-明るい面では、パブリックAPIと同等のものがありますCGWindowListCreateImage()
CGImageRefを取得したら、次を使用して生のピクセルデータにアクセスできます。
CGImageGetDataProvider
CGDataProviderCopyData