我该如何根据RGB值创建一个NSColor对象?
根据NSColor文档:
NSColor *myColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:1.0f];
此外,不要忘记进行以下转换,从您获得的实际RGB值(比如来自Photoshop)...
RGB值为(226, 226, 226)可以使用以下数值在NSColor中实例化:
Red: 226/255 = 0.886...
Green: 226/255 = 0.886...
Blue: 226/255 = 0.886...
[NSColor colorWithDeviceRed:0.886f green:0.886f blue:0.886f alpha:1.0f];
为什么是255?8位色道的颜色范围在0到255(含)之间。当归一化后,该范围缩放至[0,1](含)。有关从归一化值到非归一化值以及反之的转换,请参阅参考资料。
red = 226 / 255
。添加看起来很奇怪的1并除以256会得到非常相似但略微不正确的结果,您可以通过考虑如果颜色分量为0会发生什么来验证这一点:零除以255仍然是零,但(0 + 1) / 256
> 0。 - davidf2281float red = 0.5f;
float green = 0.2f;
float blue = 0.4f;
float alpha = 0.8f;
NSColor *rgb = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
Swift 2的扩展
extension NSObject {
func RGB(r:CGFloat, g:CGFloat, b:CGFloat, alpha:CGFloat? = 1) -> NSColor {
return NSColor(red: r/255, green: g/255, blue: b/255, alpha: alpha!)
}
}
然后只需调用
RGB(r: 16, g: 105, b: 125)
或者
RGB(r: 16, g: 105, b: 125, alpha: 0.5)