关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
5年前关闭。
锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或互动。
似乎有很多色轮、颜色选择器和颜色匹配器网络应用程序,在那里你提供一种颜色,他们会找到其他几种颜色,当组合使用时会创建和谐的布局。然而,它们中的大多数只关注背景颜色,并且在每种背景颜色上打印的任何文本(如果在预览中打印了文本)要么是黑色要么是白色。
我的问题是不同的。我知道我想用于文本区域的背景颜色。我需要帮助的是选择几种颜色(越多越好)我可以用作此背景上的字体颜色。最重要的是颜色将确保字体可读(对比度不会太低,也可能不会太高以避免眼睛受到压力),当然前景和背景的组合看起来不错。
有人知道这样的应用程序吗?我更喜欢网络应用程序而不是我必须下载的任何东西。谢谢。
最佳答案
如果您需要算法,请尝试以下操作:将颜色从 RGB 空间转换为 HSV 空间(色相、饱和度、值)。如果你的 UI 框架做不到,请查看这篇文章:http://en.wikipedia.org/wiki/HSL_and_HSV#Conversion_from_RGB_to_HSL_or_HSV
色调在 [0,360) 中。要找到“相反”颜色(想想色轮),只需添加 180 度:
h = (h + 180) % 360;
对于饱和度和值,反转它们:
l = 1.0 - l;
v = 1.0 - v;
转换回RGB。即使大多数组合看起来很难看,这也应该始终为您提供高对比度。
如果你想避免“丑”的部分,建立一个有几个“好的”组合的表,找到差异最小的
def q(x):
return x*x
def diff(col1, col2):
return math.sqrt(q(col1.r-col2.r) + q(col1.g-col2.g) + q(col1.b-col2.b))
并使用它。
关于colors - 如果背景颜色已知,如何找到好看的字体颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/301869/