我正在尝试将 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 - 这会产生完全不同的颜色。 (它应该是灰色的,现在是绿色的)。
难道我做错了什么?
从 NSColor 中提取 RGBA 值:(Swift 3)
let nsColor: NSColor = .red
let ciColor: CIColor = .init(color: nsColor)!
print(ciColor.red) // 1.0
print(ciColor.green) // 0.0
print(ciColor.blue) // 0.0
print(ciColor.alpha) // 1.0 // Or use nsColor.alphaComponent
NOTE:NSColor.blackColor().redComponent 会使应用程序崩溃,但上面的代码不会崩溃
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)