/** * convert HSL to RGB */ static function hsl2rgb($hue, $sat, $lum, $format = 'float') { if ($sat == 0) { $red = $lum; $green = $lum; $blue = $lum; } else { if ($lum < 0.5) { $var_2 = $lum * (1 + $sat); } else { $var_2 = $lum + $sat - $sat * $lum; } $var_1 = 2 * $lum - $var_2; $red = Skrollr_Color_Tools::hue2rgb($var_1, $var_2, $hue + 1 / 3); $green = Skrollr_Color_Tools::hue2rgb($var_1, $var_2, $hue); $blue = Skrollr_Color_Tools::hue2rgb($var_1, $var_2, $hue - 1 / 3); } if ($format == 'float') { return array($red, $green, $blue); } else { if ($format == 'dec') { return array($red * 255, $green * 255, $blue * 255); } else { if ($format == 'hex') { return implode('', array_map('Skrollr_Color_Tools::hexpadleft', array($red, $green, $blue))); } } } }