Necesito determinar si un UIColor seleccionado (elegido por el usuario) es oscuro o brillante, para poder cambiar el color de una línea de texto que se encuentra encima de ese color, para una mejor legibilidad.
Aquí hay un ejemplo en Flash / Actionscript (con demostración): http://web.archive.org/web/20100102024448/http://theflashblog.com/?p=173
¿Alguna idea?
Saludos, Andre
ACTUALIZAR
Gracias a las sugerencias de todos, aquí está el código de trabajo:
- (void) updateColor:(UIColor *) newColor
{
const CGFloat *componentColors = CGColorGetComponents(newColor.CGColor);
CGFloat colorBrightness = ((componentColors[0] * 299) + (componentColors[1] * 587) + (componentColors[2] * 114)) / 1000;
if (colorBrightness < 0.5)
{
NSLog(@"my color is dark");
}
else
{
NSLog(@"my color is light");
}
}
Gracias una vez más :)