Cuando llamo a CGColorGetComponents
con el CGColor
devuelto desde un UIColor
, parece que funciona correctamente excepto con blanco y negro.¿Hay algún problema con CGColorGetComponents?
Aquí está el código ...
CGColorRef myColorRef = [[UIColor whiteColor] CGColor];
const CGFloat * colorComponents = CGColorGetComponents(myColorRef);
NSLog(@"r=%f, g=%f, b=%f, a=%f",
colorComponents[0],
colorComponents[1],
colorComponents[2],
colorComponents[3]);
Esto registra
r=1.000000, g=1.000000, b=0.000000, a=0.000000
Nota B y A son cero, no uno.
Si sustituye otros colores como redColor, blueColor, etc., funciona ... los valores RGB y A se configuran como cabría esperar. Pero, de nuevo, el blanco y el negro producen resultados extraños. ¿Hay algún problema con esta función o hay alguna solución/tarea que debería estar haciendo?
Ok, comenzando desde un UIColor, ¿cómo se configuran fácilmente los colores actuales de relleno y trazo, o tenemos que hacer lo que acabamos de hacer cada vez que tenemos que hacer esto? (En cuanto a los espacios de color, solo me interesan los valores de RGBA establecidos entre 0.0 y 1.0 y que se muestran en la pantalla. Cualquier otra cosa estará fuera del alcance de lo que estamos haciendo) – MarqueIV
para un CGContextRef? simplemente use 'CGContextSetStrokeColorWithColor (context, [UIColor whiteColor] .CGColor);' –
Además, ¿qué es 'color.CGColor' en su código? ¿Es eso diferente a 'myColorRef'? – MarqueIV