如何使用 Objective-C 在 OS X 中创建颜色选择器?
你有一些有效的代码吗?
谢谢
您可以使用CGDisplayCreateImageForRect
获取CGImageRef
包含您感兴趣的点的 a 。一旦您拥有 a 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 颜色空间中返回颜色可能会很有用。