基于背景图像的文本颜色

我的视图有一个带有文本标签叠加层的背景图像根据背景图像确定文本颜色的最好/最好的dynamic方式是什么?因此它可以被读取(现在,我只关心确定文本颜色是否应该是黑色的或光)

谢谢 :)

find链接woz提到的平均颜色

然后devise你的文字

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 ,并使用亚光的 UIColor 类别使其变亮或变暗。

我的第一,虽然是find图像的平均颜色,并设置文字颜色的基础上。 当然,图像可能包含明暗区域,所以您select的颜色有时可能无法读取。

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

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

一旦你有平均颜色,检查红色,绿色和蓝色值。 如果它们“足够高”(无论你如何定义),请使用深色文字,否则使用浅色文字。