Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> PHP

Hàm PHP chuyển đổi Hex sang HSL

Mã dưới đây chuyển đổi giá trị hex sang giá trị HSL:

function hex_To_Hsl($hex) { 
    $hex_val = array($hex[0].$hex[1], $hex[2].$hex[3], $hex[4].$hex[5]); 
    $rgb_val = array_map(function($part) { 
        return hexdec($part) / 255; 
    }, $hex_val); 
    $max_val = max($rgb_val); 
    $min_val = min($rgb_val); 
    $l = ($max_val + $min_val) / 2; 
    if ($max_val == $min_val) { 
        $h = $s = 0; 
    } else { 
        $diff = $max_val - $min_val; 
        $s = $l > 0.5 ? $diff / (2 - $max_val - $min_val) : $diff / ($max_val + $min_val); 
        switch($max_val) { 
            case $rgb_val[0]: 
                $h = ($rgb_val[1] - $rgb_val[2]) / $diff + ($rgb_val[1] < $rgb_val[2] ? 6 : 0); 
                break; 
            case $rgb_val[1]: 
                $h = ($rgb_val[2] - $rgb_val[0]) / $diff + 2; 
                break; 
            case $rgb_val[2]: 
                $h = ($rgb_val[0] - $rgb_val[1]) / $diff + 4; 
                break; 
        } 
        $h /= 6; 
    } 
    return array($h, $s, $l); 
}