¿Cómo creo un NSColor a partir de un valor RGB?Crear un NSColor con valor RGB
Respuesta
por la NSColor documentación:
NSColor *myColor = [NSColor colorWithCalibratedRed:redValue green:greenValue blue:blueValue alpha:1.0f];
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];
También no se olvide de hacer lo siguiente conversión de los valores RGB reales que obtiene, digamos desde Photoshop ...
RGB de (226, 226, 226) se pueden crear instancias como NSColor usando los valores:
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];
¿Por qué 255? Los canales de color de 8 bits varían de 0 a 255 (inclusive). Cuando se normaliza, se escala al rango [0,1] (inclusive). Consulte las referencias de conversiones de valores normalizados a valores no normalizados y viceversa.
Referencias
- OpenGL ES Full Specification, consulte la Tabla 2.7 en la página 38
- Unreal Engine Color Conversion
Esto puede ser obvio para todos los demás, pero ¿por qué el +1? ¿Es solo porque 256 es un número más agradable para dividir con, más factores, por lo tanto, menos errores de redondeo/puntos decimales? –
Esta respuesta es un poco incorrecta. Los valores del componente de color RGB de 8 bits oscilan entre 0 y 255, que son 256 valores en total. Por lo tanto, la forma correcta de asignar valores RGB que van de 0 a 1 es dividir por 255, es decir: 'rojo = 226/255'. Agregar el aspecto torpe 1 y dividir por 256 da resultados muy similares pero ligeramente incorrectos, que puede verificar considerando lo que sucedería si un componente de color fuera 0: cero dividido por 255 sigue siendo cero, pero '(0 + 1)/256'> 0. – davidf2281
extensión para 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!)
}
}
A continuación, sólo llamar
RGB(r: 16, g: 105, b: 125)
o
RGB(r: 16, g: 105, b: 125, alpha: 0.5)
¿Por qué crear una extensión de NSObject y no de NSColor? – ColdGrub1384
Prefiero simplemente escribir RGB (... – emreoktem
pero si crea una extensión de NSObject, debe llamar a la función de esta manera: NSObject().RGB (_ :, g :, b :) o cualquier subclase de NSObject – ColdGrub1384
- 1. Convierta un valor rgb int negativo en bruto a un valor rgb de 3 números
- 2. HBRUSH al valor RGB
- 3. NSColor, 10.6 y Gamma 2,2
- 4. Cómo normalizar el valor RGB con los valores RGB de referencia
- 5. Valor RGB para el convertidor HSL
- 6. ¿Existe un método convencional para invertir los valores NSColor?
- 7. ¿Crear imagen a partir de datos RGB?
- 8. Creación de imágenes NSI desde NSColor
- 9. Convierta un valor de color RGB en Decimal
- 10. ¿Cómo escribo un valor de color RGB en JavaScript?
- 11. Convertir un valor de color RGB en hexadecimal
- 12. ¿Transforma RGBA con color subyacente en RGB?
- 13. RGB Int a RGB - Python
- 14. ¿Cómo crear un valor booleano?
- 15. iOS SDK Interfaz Slider RGB del generador que produce un color diferente a UIColor con RGB
- 16. Cómo crear un System.Drawing.Color a partir de su cadena RGB hexadecimal?
- 17. Establecer valor RGB para el texto de etiqueta
- 18. Por qué crear instancias de variables con un valor nulo
- 19. ¿Cómo crear una función variadica con un valor centinela personalizado?
- 20. Crear C# int [] con valor como 0,1,2,3 ...
- 21. Obtener el RGB de píxel con PIL
- 22. ¿Cómo lidiar con RGB a YUV conversión
- 23. ¿Cómo puedo leer el valor RGB de un píxel determinado en Python?
- 24. Conversión de RGB a monocromo
- 25. decodificar valor de rgb para un solo flotante sin desplazamiento de bits en glsl
- 26. ¿Cómo obtengo el valor hexadecimal correspondiente de un color RGB en Excel/VBA?
- 27. Arduino Problemas de RGB LED
- 28. con un valor psycopg2
- 29. Extrayendo rgb de UIColor
- 30. Usar XmlSerializer para crear un elemento con atributos y un valor pero no un subelemento
Debe utilizar 1.0f en lugar de 1,0, tal como 1,0 es un doble, que no es un tipo nativo para el iPhone. – nash
Tiene razón: ¡los peligros de escribir el código rápidamente! –
Probablemente valga la pena aclarar que los valores de color son de 0.0 a 1.0. Además, la versión "calibrada" es, de hecho, la variante correcta de este método. Desea utilizar NSCalibratedRGBColorSpace (que corresponde a [NSColorSpace genericRGBColorSpace]) en todos los tratos internos con los colores. Y solo use las variantes de espacios de color del "dispositivo" cuando se envía a un dispositivo específico conocido. – Kelan