Preciso determinar se um UIColor selecionado (escolhido pelo usuário) é escuro ou claro, para que eu possa alterar a cor de uma linha de texto que fica em cima dessa cor, para melhor legibilidade.
Aqui está um exemplo em Flash / Actionscript (com demonstração): http://web.archive.org/web/20100102024448/http://theflashblog.com/?p=173
Alguma ideia?
Saúde Andre
ATUALIZAR
Graças às sugestões de todos, aqui está o código de trabalho:
- (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");
}
}
Obrigado mais uma vez :)