如何实现色彩对比度丰富算法?

时间:2016-09-07 10:47:33

标签: colors

我目前正在开发一款App。在这个应用程序中,我从服务器获得一些我想要显示的RGB颜色代码。

由于我得到的颜色应该是Label的背景颜色,因此应该在其上方显示一些文本。定义颜色的用户可以完全自由地选择颜色,因此我需要找到一种算法,其中标签的文本颜色与我从网络服务获得的颜色形成对比。

示例中解释的问题:

  • 我选择black 0x000000作为文字颜色。如果用户定义了类似dark gray 0x111111的颜色,则文本的可见性将非常糟糕。

此外,我希望文字颜色为黑色或白色,以免过度涂色。

那么如何基于我从服务器获得的RGB代码来确定白色或黑色是否为textcolor的颜色更好?

1 个答案:

答案 0 :(得分:2)

你应该用黑白计算用户颜色的对比度,然后选择比例较高的颜色。

这是description for calculating relative color contrast from RGB

请注意,白色的相对亮度为1.0,黑色的相对亮度为0.0,因此(如果您只考虑黑色和白色)您可以检查用户颜色的相对亮度是否<0.5然后使用白色,否则使用黑色