如何使用Objective-C在OS X中创建颜色选择器?
你有一些有用的代码吗?
由于
答案 0 :(得分:5)
答案 1 :(得分:2)
您可以使用CGDisplayCreateImageForRect
获取包含您感兴趣的点的CGImageRef
。一旦拥有CGImage
,您就可以通过渲染获得颜色值将图像放入自定义缓冲区,或使用NSBitmapImageRep's
initWithCGImage
然后使用colorAtX:y:
。 NSBitmapImageRep
方法的“写入堆栈溢出代码窗口”代码如下所示:
NSColor *MyColorAtScreenCoordinate(CGDirectDisplayID displayID, NSInteger x, NSInteger y) {
CGImageRef image = CGDisplayCreateImageForRect(displayID, CGRectMake(x, y, 1, 1));
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithCGImage:image];
CGImageRelease(image);
NSColor *color = [bitmap colorAtX:0 y:0];
[bitmap release];
}
这可能会返回设备颜色空间中的颜色。改为在校准的RGB色彩空间中返回颜色可能很有用。