如何通过编程选择好的对比RGB颜色?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

假设,在你的程序中:

  1. color A 是我们随机选择的颜色
  2. 知道color A我该如何挑选一个color B与之形成鲜明对比的color A

这个问题可以进一步缩小为:“想象2个方格彼此相邻,颜色不一样”,人眼应该清楚地知道颜色不一样“

例:

  • 黑色 - >白色
  • 蓝色 - >白色
提问于
用户回答回答于

Web Content Accessibility Guidelines(WCAG)2.0(http://www.w3.org/TR/2008/REC-WCAG20-20081211)中提供了一些信息,

  1. 视觉对比:http : //www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast
  2. 对比度:http : //www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef
  3. 相对亮度:http : //www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef

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

互补色调:将颜色从RGB转换为HSV后,互补色调将为180度(或0.5,0-1归一化色调值)。

用户回答回答于

当我正在寻找更好的方法来做到这一点时,我偶然发现了Adobe Illustrator指南,其中提到了它们如何创建互补色。他们说:

补色根据所选颜色中最高和最低RGB值的总和将颜色的每个分量更改为新值。Illustrator添加当前颜色的最低和最高RGB值,然后从该数中减去每个组件的值以创建新的RGB值。例如,假设您选择了红色为102,红色为153,蓝色为51的颜色。Illustrator添加高(153)和低(51)值,最终得到新值(204)。现有颜色中的每个RGB值将从新值中减去以创建新的补充RGB值:新红色值204 - 102(当前绿色值)= 51对于新的绿色值,对于新的蓝色值,204-51(当前蓝色值)= 153。

通过编程实现这一点并不难,并且这次认为它实际上可以用于你想要做的事情。

祝你好运!

扫码关注云+社区