Converts an RGB triplet to HSL.
function _color_rgb2hsl($rgb) {
$r = $rgb[0];
$g = $rgb[1];
$b = $rgb[2];
$min = min($r, min($g, $b));
$max = max($r, max($g, $b));
$delta = $max - $min;
$l = ($min + $max) / 2;
$s = 0;
if ($l > 0 && $l < 1) {
$s = $delta / ($l < 0.5 ? 2 * $l : 2 - 2 * $l);
}
$h = 0;
if ($delta > 0) {
if ($max == $r && $max != $g) {
$h += ($g - $b) / $delta;
}
if ($max == $g && $max != $b) {
$h += 2 + ($b - $r) / $delta;
}
if ($max == $b && $max != $r) {
$h += 4 + ($r - $g) / $delta;
}
$h /= 6;
}
return array(
$h,
$s,
$l,
);
}