基于背景图像的文本颜色

时间:2013-10-18 18:06:56

标签: ios objective-c ios7

我的视图有一个带有文本标签叠加层的背景图片 什么是基于背景图像确定文本颜色的最好/最好的动态方式,因此它可以读取(现在,我只对确定文本颜色应该是暗还是亮)感兴趣

谢谢:)

2 个答案:

答案 0 :(得分:14)

使用提到的链接

查找平均颜色

然后设置文字样式

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];
像这样的东西。

您还可以使用上面的链接从图片中获取UIColor,并使用matt's category为UIColor获得亮或暗。

答案 1 :(得分:7)

我的第一个是找到图像的平均颜色,并根据它设置文本颜色。当然,图像可能包含亮区和暗区,因此您选择的颜色有时可能无法读取。

要查找图像的平均颜色,请尝试以下操作:

http://www.bobbygeorgescu.com/2011/08/finding-average-color-of-uiimage/

获得平均颜色后,请检查红色,绿色和蓝色值。如果它们“足够高”(无论你将其定义为什么),请使用深色文本,否则使用浅色文本。