2011-03-27 56 views
1

我試圖在Mac的Cocoa上,如何獲得屏幕上任意點的RGB值?

CGPoint pt; 
    pt.x = x; 
    pt.y = y; 

    NSColor* color = NSReadPixel(pt); 
    float colourValue = [color greenComponent] + [color redComponent]+ [color blueComponent]; 
    printf("%f\n", colourValue); 

但它總是打印出0.0000

(如果你知道到「設置」屏幕太上的像素值的方法,謝謝)

+1

你確定你的x值有效嗎?也應該是'NSPoint pt;',而不是'CGPoint pt;'? – 2011-03-27 08:59:23

+0

我測試了幾個x,y值,比如0,0和500,500以及600,600等等...我會在之後嘗試NSPoint ...我的程序現在非常不同... – 2011-03-27 12:46:02

回答

2

This CocoaDev page有幾個獲取像素顏色的方法。根據示例代碼,您需要在正確的位置使用透明的圖形上下文才能使用NSReadPixel。

相關問題