Как создать NSColor из значения RGB?
Создание NSColor с RGB-значением
Ответ 1
В документации NSColor:
NSColor *myColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:1.0f];
Ответ 2
Также не забудьте сделать следующее преобразование из фактических значений 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] (включительно). См. Ссылки для преобразований из нормализованных значений в ненормализованные значения и наоборот.
Ссылки
- Полная спецификация OpenGL ES, см. таблицу 2.7 на стр. 38
- Unreal Engine Color Conversion
Ответ 3
float 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];
Ответ 4
Расширение для 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(16, g: 105, b: 125)
или
RGB(16, g: 105, b: 125, alpha: 0.5)