我正在尝试将NSColor转换为RGB,但似乎给出了完全不正确的结果:

NSColor *testColor = [NSColor colorWithCalibratedWhite:0.65 alpha:1.0];

const CGFloat* components = CGColorGetComponents(testColor.CGColor);
NSLog(@"Red: %f", components[0]);
NSLog(@"Green: %f", components[1]);
NSLog(@"Blue: %f", components[2]);
NSLog(@"Alpha: %f", CGColorGetAlpha(testColor.CGColor));

我回来了:红色= 0.65-绿色= 1.0-蓝色= 0.0且alpha为1.0-这导致了完全不同的颜色。 (应该是灰色,现在是绿色)。

难道我做错了什么?

最佳答案

您需要先使用 NSColorSpace 对象将颜色转换为RGB颜色空间,然后才能使用各种 NSColor 访问器方法获取组件。

关于objective-c - 将NSColor转换为RGB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15682923/

10-12 05:39