Php function hex or rgb color to color name

后端 未结 2 733
慢半拍i
慢半拍i 2021-02-06 16:50

Is there a php function that return the closest colorname by give the rgb or hex color as parameter? I have seared a lot but can\'t find a function that does that job.

P

2条回答
  •  失恋的感觉
    2021-02-06 17:48

    See my Code below. I use it to copy Logo Color to change the site theme automatically at run-time. Hope it works!

    Simply pass the image URL as parameter in the function.

    function CopyLogoColor($logo_path){
        $i = imagecreatefromjpeg($logo_path);
    
        $rTotal = 0;
        $gTotal =0;
        $bTotal = 0;
        $total = 0;
    
        for ( $x=0 ; $x> 16) & 0xFF;
                $g   = ($rgb >> 8)& 0xFF;
                $b   = $rgb & 0xFF;
    
                $rTotal += $r;
                $gTotal += $g;
                $bTotal += $b;
                $total++;
    
            }
        }
    
        $rAverage = round($rTotal/$total);
        $gAverage = round($gTotal/$total);
        $bAverage = round($bTotal/$total);
    
    
    
        $r = intval($rAverage); 
        $g = intval($gAverage);
        $b = intval($bAverage);
    
        $r = dechex($r<0?0:($r>255?255:$r));
        $g = dechex($g<0?0:($g>255?255:$g));
        $b = dechex($b<0?0:($b>255?255:$b));
    
        $color = (strlen($r) < 2?'0':'').$r;
        $color .= (strlen($g) < 2?'0':'').$g;
        $color .= (strlen($b) < 2?'0':'').$b;
    
        return '#'.$color;
    
    }
    

提交回复
热议问题