对于需要在Windows和OSX上运行的应用程序,我处于一个庞大的已建立的代码库的位置,这是一个令人尴尬的位置。我目前正在处理的一个部分包含一些用于吸管/颜色选择器工具的遗留代码。不幸的是,我没有很多为Mac开发的经验,所以我希望有人可以解决我的问题。
在某些情况下,吸管颜色稍微有点错误,我将问题追溯到预期的CGColorSpaceRef(通过调用CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB)设置)和主显示配置文件设置的实际颜色空间之间的差异。将操作系统显示配置文件设置为通用RGB可消除差异,但无论显示配置文件是什么,我都希望吸管能够获得一致的颜色。
检索主监视器显示配置文件并使用它而不是通用RGB确保吸管工具获得一致的值吗?我找到了CGColorSpaceCreateWithPlatformColorSpace(...)函数,但根据文档,自OSX 10.6以来它已被弃用。在Quartz中处理这个问题的当前方法是什么?
我对此感到有些不安,因为我没有权力或专业知识来进行重大更改,例如在其他框架上添加依赖项。
答案 0 :(得分:0)
NSColor具有此功能:
-(void)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
将返回从依赖于设备的色彩空间转换的RGB分量。
的示例CGFloat red, green, blue, a;
NSColor *colorAsRGB = [_color colorUsingColorSpaceName:NSDeviceRGBColorSpace];
[colorAsRGB getRed:&red green:&green blue:&blue alpha:&a];
相关链接: