colors - 如果背景颜色已知,如何找到好看的字体颜色?

标签 colors accessibility readability

关闭。这个问题不满足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/

相关文章:

java - 无法设置 JApplet 背景颜色

html - 同一 HTML 页面上的不同颜色链接

css颜色不同

javascript - aria-owns、aria-invalid、aria-expanded的解释和示例

module - Lua 意大利面条模块

functional-programming - 函数式编程的正确注释

java - 如何将十六进制颜色代码分配给java类文件中的任何数据类型

ios,以编程方式打开 VoiceOver

c++ - Active Accessibility (COM) 调用返回不同,具体取决于调用者是线程还是进程。什么?

language-agnostic - 简化if语句逻辑