Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Text color based on background image

My view has a background image with a text label overlay What's the best/good dynamic way to determine text color based on the background image so it can be readable (For now, I'm only interested on determining if text color should be dark or light)

Thanks :)

like image 452
Ed Liss Avatar asked Oct 18 '13 18:10

Ed Liss


1 Answers

Find the average color with the link woz mentioned

Then style your text

CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0;
[averageColor getRed:&red green:&green blue:&blue alpha:&alpha];

int threshold = 105;
int bgDelta = ((red * 0.299) + (green * 0.587) + (blue * 0.114));

UIColor *textColor = (255 - bgDelta < threshold) ? [UIColor blackColor] : [UIColor whiteColor];

something like this.

You could also use the link above to get the UIColor from the image and use matt's category for UIColor to get light or dark.

like image 96
Bot Avatar answered Oct 31 '22 09:10

Bot