我有一个背景图片,上面有一些UILabel.
用户可以将背景图像更改为任何颜色,而我必须确定哪种颜色可以更好地用于UILabels,白色还是黑色?
最好的例子是iOS 7 Home Screen.
当背景暗时,文本变为白色,反之亦然.
但是,当背景介于黑暗和光线之间时,例如:半图像100%白色,另一半100%黑色 - 文本变为白色,并添加阴影效果,因此它将是可读的.
我一直面临的问题是如何指出这是什么类型的图像?
天黑了吗?这很轻吗?它是在暗光之间吗?
我怎样才能将这一点变为人类对代码的清晰度?
我明显想自己编写代码,但我不知道.
我开始学习对比度和亮度,但我无法将各个部分粘在一起.
我应该从哪里开始?非常感谢!
通过此链接查找平均颜色
然后设置文本样式
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; //Formula for computing Luminance out of R G B, which is something close to luminance = (red * 0.3) + (green * 0.6) + (blue * 0.1). int bgDelta = ((red * 0.299) + (green * 0.587) + (blue * 0.114)); UIColor *textColor = (255 - bgDelta < threshold) ? [UIColor blackColor] : [UIColor whiteColor];
这样的事情.
您还可以使用上面的链接UIColor
从图像中获取并使用亚光的 UIColor 类别来获得亮或暗.
看看这个问题.肯定会帮助你.
PS:我正在复制代码,以便即使删除帖子,也可以获得信息