Мне нужно определить, является ли выбранный UIColor (выбранный пользователем) темным или светлым, чтобы я мог изменить цвет строки текста, расположенной поверх этого цвета, для лучшей читаемости.
Вот пример во Flash/Actionscript (с демо): http://web.archive.org/web/20100102024448/http://theflashblog.com/?p=173
Какие-нибудь мысли?
Ура, Андре
ОБНОВИТЬ
Спасибо всем предложениям, вот рабочий код:
- (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");
}
}
Еще раз спасибо :)