我怎么知道十六进制颜色是否为蓝色?

时间:2018-07-24 11:14:01

标签: php colors hex

我想知道一种十六进制代码颜色是否在蓝色范围内。

我正在使用Ghero主色来获得它,但是我需要知道这种颜色是否像蓝色。

$color = DominantColor::setColor($sourceimage)->getColor();

有人知道某些功能或具有蓝色十六进制的数组吗?

1 个答案:

答案 0 :(得分:0)

如果有人要,我只是做一个函数(知道RGB颜色是否在蓝色范围内的可能性为80%)。问候

public function is_blue($rgb)
{
    extract($rgb);
    $result = false;

    if(($r<240)&&($g<240)&&($b==255)){ $result = true;}
    if(($r<200)&&($g<200)&&($b>230)){ $result = true;}
    if(($r<175)&&($g<175)&&($b>220)){ $result = true; }
    if(($r<150)&&($g<150)&&($b>200)){ $result = true; }
    if(($r<125)&&($g<125)&&($b>180)){ $result = true; }
    if(($r<100)&&($g<100)&&($b>170)){ $result = true; }
    if(($r<80)&&($g<80)&&($b>150)){ $result = true; }
    if(($r<60)&&($g<60)&&($b>120)){ $result = true; }
    if(($r<40)&&($g<40)&&($b>100)){ $result = true; }
    if(($r<20)&&($g<20)&&($b>80)){ $result = true; }
    if(($r<10)&&($g<10)&&($b>50)){ $result = true; }
    if(($r<10)&&($g<180)&&($b>200)){ $result = true; }
    if(($r<10)&&($g<150)&&($b>180)){ $result = true; }
    if(($r<10)&&($g<120)&&($b>150)){ $result = true; }
    if(($r<10)&&($g<100)&&($b>130)){ $result = true; }
    if(($r<10)&&($g<50)&&($b>100)){ $result = true; }
    if(($r<10)&&($g<25)&&($b>80)){ $result = true; }
    if(($r<80)&&($g<10)&&($b>240)){ $result = true; }
    if(($r<60)&&($g<10)&&($b>220)){ $result = true; }
    if(($r<40)&&($g<10)&&($b>200)){ $result = true; }
    if(($r<20)&&($g<10)&&($b>150)){ $result = true; }
    if(($r==0)&&($g<10)&&($b>50)){ $result = true; }
    if(($r<125)&&($g<220)&&($b>200)){ $result = true; }
    if(($r<125)&&($g<200)&&($b>220)){ $result = true; }
    if(($r<125)&&($g<180)&&($b>180)){ $result = true; }
    if(($r<230)&&($g>230)&&($b>240)){ $result = true; }
    if(($r<60)&&($g>140)&&($b>160)){ $result = true; }
    if(($r<10)&&($g>180)&&($b>200)){ $result = true; }
    if(($r<10)&&($g>160)&&($b>180)){ $result = true; }
    if(($r<10)&&($g>120)&&($b>160)){ $result = true; }
    if(($r<80)&&($g>160)&&($b>180)){ $result = true; }
    if(($r<80)&&($b>$g)){ $result = true; }
    if(($r<200)&&($g<200)&&($b>180)){ $result = true; }

    $percent = $r-$g/$g*100;
    if((($percent > -20) or ($percent<20)) and ($b > 200)){$result = true; }

    return $result;
}