我目前正在开发一款App。在这个应用程序中,我从服务器获得一些我想要显示的RGB颜色代码。
由于我得到的颜色应该是Label的背景颜色,因此应该在其上方显示一些文本。定义颜色的用户可以完全自由地选择颜色,因此我需要找到一种算法,其中标签的文本颜色与我从网络服务获得的颜色形成对比。
示例中解释的问题:
black 0x000000
作为文字颜色。如果用户定义了类似dark gray 0x111111
的颜色,则文本的可见性将非常糟糕。此外,我希望文字颜色为黑色或白色,以免过度涂色。
那么如何基于我从服务器获得的RGB代码来确定白色或黑色是否为textcolor的颜色更好?
答案 0 :(得分:2)
你应该用黑白计算用户颜色的对比度,然后选择比例较高的颜色。
这是description for calculating relative color contrast from RGB。
请注意,白色的相对亮度为1.0,黑色的相对亮度为0.0,因此(如果您只考虑黑色和白色)您可以检查用户颜色的相对亮度是否<0.5然后使用白色,否则使用黑色