假设,在你的程序中:
color A
是我们随机选择的颜色
了解color A
,如何选择与color B
形成鲜明对比的color A
?
问题可以进一步简化为:“想象两个颜色彼此相邻的2个方格。应该明确地清楚地看到人眼颜色不一样”
示例:
答案 0 :(得分:9)
“网页内容无障碍指南”(WCAG)2.0(http://www.w3.org/TR/2008/REC-WCAG20-20081211)中提供了一些信息
视觉对比:http://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast
对比度:http://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
相对亮度:http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
有一个很好的例子in this site,但他计算出两种颜色足够的地方,而不是如何得到它们。
要选择具有良好对比度的颜色,我会选择补色:例如,选择随机颜色A,将其转换为HSV空间,获得互补色调。
互补色调:在将颜色从RGB转换为HSV后,互补色调将为180度appart(或0.5,在0-1标准化的色调值中)。 This site在PHP中有一些关于它的东西
答案 1 :(得分:3)
当我在寻找更好的方法时,我偶然发现了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表示新的蓝色值。
以编程方式执行此操作并不会太难,并认为这次它可能实际上适用于您要执行的操作。
祝你好运!