如何自动确定与白色相似的颜色?

时间:2015-08-19 11:07:46

标签: html css regex colors

我正在寻找十六进制代码格式的颜色列表或白色颜色/白色阴影的某些十六进制代码模式。

我一直在使用Wikipedia Shades of White列表,但我不认为它是完整的,理想情况下我想要一些白色的正则表达式。

如果这是一个无知的问题,我不是很了解颜色,请原谅我。

3 个答案:

答案 0 :(得分:1)

也许这个功能对你有帮助吗?

它的作用是测试该值是否为白色(高于r / g / b值200)。如果#FFBBEE中提供的任何rgb值计算为低于200的数字,则测试将失败。

这是一个非常粗糙的测试,但由于你缺乏关于你究竟想要什么的细节,这可能是一个很好的起点。 至少该函数为您提供了将其转换为整数值的方法,您可以再次使用它来以更好的格式计算,如HSL,这将允许您进行更好的亮度检查。 如果你想走那个方向,请参见this answer

其他答案解释了RGB是什么以及如何将它们组合在您使用的颜色代码中,尤其是user1203738的答案



function isWhite(str) {
    // fiddle this value to set stricter rules for what is white.
    var whiteLimit = 200, 
        r,g,b;
    
    r = parseInt("0x"+str.substring(1,3));
    g = parseInt("0x"+str.substring(3,5));
    b = parseInt("0x"+str.substring(5,7));
    if(r < whiteLimit || b < whiteLimit || g < whiteLimit) {
        return false;
    } 
    return true;    
}
// use this function like this. supply it a colour code with a # in front of it
isWhite("#FFFFFF");
&#13;
<input type="text" value="#FFFFFF" id="colorcode">
<input type="button" value="test if this is white" onclick="document.getElementById('showcolor').style.backgroundColor = document.getElementById('colorcode').value;document.getElementById('showcolor').innerText='Shade of white:'+isWhite(document.getElementById('colorcode').value);">
<div id="showcolor" style="display:block;width:200px;height:200px;margin:50px;border 1px solid black;background-color:#AAA"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这不会很完美,但它可能会让你接近:

第1步:Convert the color name to RGB hex

步骤2:检查红色,绿色和蓝色十六进制值的每个的第一个字符是否为e或f。这可以作为正则表达式来完成,例如:

data.php

有关被视为白色阴影的更多示例,请参阅另请参阅Encycolorpedia。这个问题与平面设计界更为相关。

答案 2 :(得分:0)

十六进制代表红色,绿色和蓝色光的混合。 #FFFFFF转换为白色,FF红色,FF绿色和FF蓝色。 你可以将十六进制FF值转换回255,

把它想象成你有3个彩色灯;红色,绿色和蓝色。 你将把这些灯混合在一起。十六进制值确定每个灯的强度。

  • #000000将是黑色的。没有灯打开。
  • #FF0000将全红。只有红灯亮起。
  • #FFFF00会给你黄色。红色和绿色指示灯亮起(并组合成黄色)
  • #FFFFFF会给你一个白色。所有灯都亮了,
  • #AAAAAA会给你一个灰色的颜色,所有的灯都亮了但是有点暗淡。
  • #FFFFF0会给你带黄白色的颜色,所有的灯都打开,但是蓝色缺少一些强度。

我建议你尝试一下color picker,看看改变这些价值意味着什么。

白色/白色阴影非常广泛,正如评论中提到的klaar,你应该定义什么是白色。

一般来说,红色,绿色和蓝色的值彼此接近且高于200&#39;强度&#39;会显得很白。

您可能更容易将RGB值转换为HSL(这超出了此问题的范围)。由于H(ue)值无关,因此S(起始)应该是低的(没有颜色)。并且L(ight / brightness)值应该高,以便显示为白色。