Ejemplo n.º 1
0
function hsl2rgb($hsl)
{
    if ($hsl[1] == 0) {
        $R = $hsl[2] * 255;
        $G = $hsl[2] * 255;
        $B = $hsl[2] * 255;
    } else {
        if ($hsl[2] < 0.5) {
            $var_2 = $hsl[2] * (1 + $hsl[1]);
        } else {
            $var_2 = $hsl[2] + $hsl[1] - $hsl[1] * $hsl[2];
        }
        $var_1 = 2 * $hsl[2] - $var_2;
        $R = 255 * Hue_2_RGB($var_1, $var_2, $hsl[0] + 1 / 3);
        $G = 255 * Hue_2_RGB($var_1, $var_2, $hsl[0]);
        $B = 255 * Hue_2_RGB($var_1, $var_2, $hsl[0] - 1 / 3);
    }
    $R = sprintf("%02X", round($R));
    $G = sprintf("%02X", round($G));
    $B = sprintf("%02X", round($B));
    $rgb = '#' . $R . $G . $B;
    return $rgb;
}
Ejemplo n.º 2
0
function HSLToRGB($HSL)
{
    $H = $HSL['H'] / 360;
    $S = $HSL['S'] / 100;
    $L = $HSL['L'] / 100;
    if ($S == 0) {
        $R = $L * 255;
        //$RGB results from 0 to 255
        $G = $L * 255;
        $B = $L * 255;
    } else {
        if ($L < 0.5) {
            $var_2 = $L * (1 + $S);
        } else {
            $var_2 = $L + $S - $S * $L;
        }
        $var_1 = 2 * $L - $var_2;
        $R = 255 * Hue_2_RGB($var_1, $var_2, $H + 1 / 3);
        $G = 255 * Hue_2_RGB($var_1, $var_2, $H);
        $B = 255 * Hue_2_RGB($var_1, $var_2, $H - 1 / 3);
        // var_dump($R);
        // var_dump($G);
        // var_dump($B);
        return array('R' => round($R), 'G' => round($G), 'B' => round($B));
    }
}