Colors 如何以编程方式选择对比度良好的RGB颜色?

Colors 如何以编程方式选择对比度良好的RGB颜色?,colors,rgb,Colors,Rgb,假设在您的程序中: 颜色A是我们随机选择的颜色 知道颜色A,如何选择与颜色A对比度高的颜色B? 这个问题可以进一步简化为:“想象两个正方形彼此相邻,颜色不一样,对人眼来说应该非常清楚。” 例如: 黑色-->白色 蓝色-->白色 Web内容可访问性指南(WCAG)2.0中有一些信息(http://www.w3.org/TR/2008/REC-WCAG20-20081211) 视觉对比度: 对比度: 相对亮度: 有一个很好的例子,但他计算两种颜色在哪里足够,而不是如何得到它们 要选择对比度好的颜色

假设在您的程序中:

  • 颜色A
    是我们随机选择的颜色

  • 知道
    颜色A
    如何选择与
    颜色A
    对比度高的
    颜色B

  • 这个问题可以进一步简化为:“想象两个正方形彼此相邻,颜色不一样,对人眼来说应该非常清楚。”

    例如:

    • 黑色-->白色
    • 蓝色-->白色

    Web内容可访问性指南(WCAG)2.0中有一些信息(http://www.w3.org/TR/2008/REC-WCAG20-20081211)

  • 视觉对比度:

  • 对比度:

  • 相对亮度:

  • 有一个很好的例子,但他计算两种颜色在哪里足够,而不是如何得到它们

    要选择对比度好的颜色,我会选择互补色:例如,选择随机颜色a,将其转换为HSV空间,获得互补色调


    互补色调:将颜色从RGB转换为HSV后,互补色调将显示180度(或0.5,在0-1标准化色调值中)。当我在寻找更好的方法时,我偶然发现了Adobe Illustrator指南,其中提到了它们如何创建互补色。他们说:

    补码基于选定颜色中的最高和最低RGB值之和,将颜色的每个分量更改为新值。Illustrator将当前颜色的最低和最高RGB值相加,然后从该数字中减去每个分量的值以创建新的RGB值。例如,假设您选择的颜色的RGB值为102表示红色,153表示绿色,51表示蓝色。Illustrator将高值(153)和低值(51)相加,最后得到一个新值(204)。从新值中减去现有颜色中的每个RGB值以创建新的互补RGB值:新红色值204–102(当前红色值)=102,新绿色值204–153(当前绿色值)=51,新蓝色值204–51(当前蓝色值)=153

    以编程的方式来做这件事并不会太难,而且这一次你会认为它可能真的对你想要做的事情有用


    祝你好运

    你需要有像oposite颜色一样的对比度吗?或者你如何看待“对比度”?在你的例子中,你有两次“黑色”…@woliverajr,我想,“相反”是一种看待它的方式。示例显示了著名的xterm颜色,它们看起来很好(对大多数人来说)颜色对比度有一些定义,请看下面的答案。关于颜色对比度x好看的对比度,也有一些有趣的观点。可能是No的重复。请考虑使用一种颜色,即RGB(130130130)。拥有(125,125,125)是不好的。。。RGB不是改变颜色的好模型,具有色调值的模型更容易处理。我明白了。对不起,回答不正确。那么正确的做法是找到互补色吗?在问题被编辑后,我认为它变得更容易了,只需要颜色彼此不太接近(在色调值上),而不是完全互补。你可以编辑你的答案并提出建议。我在adobes illustrator guide上找到了一篇有趣的帖子,内容是关于如何计算互补色的。我编辑了我的帖子,这里是源链接:几乎不错。如果RGB(255,255,250),sum=505,则新值将是(250,250,255)。不是很好的。。。。几乎白色的互补色将是另一种几乎白色。如果sum>255,sum=255,这种方法的解决方法是
    。根据这种解释,HSV中
    0,0,0
    (黑色)的补码是
    180,0,0
    ,这也是黑色的?它不应该是白色的吗?那么亮度也需要反转吗?