如何看rgb颜色是否太亮

时间:2011-03-29 19:16:51

标签: php javascript jquery colors rgb

我有一个客户选择颜色的应用程序。 我不能让这种颜色太淡。 有没有办法看到这一点,以防止客户选择太亮的颜色?

非常感谢你!


在这种情况下太亮了几乎是白色的颜色....我有一个白色背景的网站,用户可以通过jquery插件选择一种颜色。

我想让用户选择他想要的颜色,但不能太亮。

3 个答案:

答案 0 :(得分:24)

如果您正在寻找对比,那么check out this article

它们显示这样的函数,根据任意颜色选择文本颜色:

function isTooLightYIQ(hexcolor){
  var r = parseInt(hexcolor.substr(0,2),16);
  var g = parseInt(hexcolor.substr(2,2),16);
  var b = parseInt(hexcolor.substr(4,2),16);
  var yiq = ((r*299)+(g*587)+(b*114))/1000;
  return yiq >= 128;
}

// usage:
element.style.color = isTooLightYIQ('ff0045') ? '#000' : '#fff';

如果颜色太浅,白色文字无法在此颜色上方读取,则上述函数将返回true。

答案 1 :(得分:0)

相对于什么来说“太轻”了?一些形象?纯白?有些灰白色?最简单的方法是确保其中一个R,G,B成员值高于某个阈值,但如果用户选择(128,0,0)并将其粘贴到图像上(127)则无效,0,0) - 差异是(1,0,0)并且在大多数监视器上几乎不可能看不见或至少是不可见的。

答案 2 :(得分:-1)

你不是太具体,但假设你使用的是Javascript,

var v = Math.round((r+g+b)/3)并检查它是否低于某个阈值?

此外,颜色是什么形式? RGB? HSL?六角?