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; }
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)); } }