/** * Converts a color from HSL to RGB color space * * @param H hue from 0 to 1 (map from 0 to 360 degrees of hue) * @param S saturation from 0 to 1 (percentage: 0=colorless, 1=colorful) * @param L lightness from 0 to 1 (percentage: 0=black, 0.5=std, 1=white) * @return a 3-element array corresponding to RGB components (0-255 of each) */ function hsl2rgb($H, $S, $L) { // shade of gray if ($S == 0) { $r = $L * 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); } $RGB = array(); $RGB[] = round($r); $RGB[] = round($g); $RGB[] = round($b); return $RGB; }
/** * Transformation d'une couleur HSL en RGB * HSL float entre 0 et 1 * RGB entiers entre 0 et 255 * * @param float $H * @param float $S * @param float $L * @return array */ function _couleur_hsl2rgb($H, $S, $L) { if ($S == 0) { $R = $L * 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); } $ret["r"] = floor($R); $ret["g"] = floor($G); $ret["b"] = floor($B); return $ret; }
/** * Transformation d'une couleur HSL en RGB * HSL float entre 0 et 1 * RGB entiers entre 0 et 255 * * @param float $H * @param float $S * @param float $L * @return array */ function _couleur_hsl2rgb ($H,$S,$L) { if ( $S == 0 ) //HSV values = 0 -> 1 { $R = $V * 255; $G = $V * 255; $B = $V * 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 ) ); } $ret["r"] = floor($R); $ret["g"] = floor($G); $ret["b"] = floor($B); return $ret; }