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 n
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.
My first though is to find the average color of the image and set the text color based on that. Of course, images can contain light and dark areas, so the color you choose could be unreadable at times.
To find the average color of an image, try this:
http://www.bobbygeorgescu.com/2011/08/finding-average-color-of-uiimage/
Once you have the average color, check the red, green, and blue values. If they are "high enough" (whatever you define that as), use dark text, else use light text.