在javascript中使用十六进制或十进制比较颜色范围

在javascript中使用十六进制或十进制比较颜色范围,javascript,if-statement,colors,Javascript,If Statement,Colors,我正在从图片中提取主颜色,然后根据它是红色、蓝色、绿色、黄色、紫色等来调用不同的函数(我可以拥有的选项越多越好)。因此,我希望能够做到的是: if(color < maxColorValueRed && color > minColorValueRed) { function1(); } else { if { ..... if(colorminColorValueRed){ 功能1(); } 否则{ 如果{。。。。。 其中,maxColorValue和minCo

我正在从图片中提取主颜色,然后根据它是红色、蓝色、绿色、黄色、紫色等来调用不同的函数(我可以拥有的选项越多越好)。因此,我希望能够做到的是:

if(color < maxColorValueRed && color > minColorValueRed) {
function1();
}
else {
if { .....
if(colorminColorValueRed){
功能1();
}
否则{
如果{。。。。。
其中,maxColorValue和minColorValue是十六进制或十进制颜色值,两者之间的所有值都将计为相同的粗糙颜色-因此,例如,指定(大致)最小和最大红色

所以我有两个问题: 1) 我能比较十六进制吗?如何比较?如果我能用十六进制而不是十进制来比较,生活会更轻松。 2) 有没有人能得到一个方便的图表来显示颜色范围?普通的图表(即我在谷歌上能找到的)让我头疼……看着它们,我甚至不能100%确定我能指定这样的范围

基本上,我不完全确定这种方法是否可行——有人有任何建议可以用另一种方法得到相同的最终结果吗

提前感谢您的帮助。

我可以回答#1。您可以通过将十六进制数转换为10的基数来比较十六进制数。如下所示

var h1 = "FFFF00", h2 = "FFFF01";

if (parseInt("0x" + h1, 16) < parseInt("0x" + h2, 16) ){
    console.log("H1 is smaller than H2");
}
var h1=“FFFF00”,h2=“FFFF01”;
if(parseInt(“0x”+h1,16)
1) 我可以比较六位小数吗?如何比较?如果我 可以用这个而不是十进制

是和否。选择结构将非常长,如果您想要有广泛的颜色选择,我建议您通过RGB值进行比较。您可以将其与java API中的一起使用。下面是到RGB的转换方法,并返回颜色对象

// color string is of type "#FFFFFF"
private Color hexToColor(String hex) {
    return new Color(
        Integer.valueOf(hex.substring(1,3), 16),
        Integer.valueOf(hex.substring(3,5), 16),
        Integer.valueOf(hex.substring(5,7), 16));
}
如果它是有效的十六进制字符串,则必须首先控制Ofc。
然后比较更容易,只需将颜色类与结构中预定义的静态颜色(如color.GREEN、color.CYAN)进行比较(也在上面的类API中提供)

有多少个“选项”这就足够了,你能告诉我们更多关于你的使用案例吗?这是一个应用程序,它可以拍摄照片并返回诗歌引用,具体取决于照片的主颜色(以及一些其他因素,但这些因素应该更容易比较…)哦,我是说一个新行,而不是“输入”:p我想要(至少)红色、绿色、蓝色、黄色、紫色、黑色、白色……我想橙色也不会伤害你。