Beans_Lessc::toHSL PHP Method

toHSL() protected method

protected toHSL ( $color )
    protected function toHSL($color)
    {
        if ($color[0] == 'hsl') {
            return $color;
        }
        $r = $color[1] / 255;
        $g = $color[2] / 255;
        $b = $color[3] / 255;
        $min = min($r, $g, $b);
        $max = max($r, $g, $b);
        $L = ($min + $max) / 2;
        if ($min == $max) {
            $S = $H = 0;
        } else {
            if ($L < 0.5) {
                $S = ($max - $min) / ($max + $min);
            } else {
                $S = ($max - $min) / (2.0 - $max - $min);
            }
            if ($r == $max) {
                $H = ($g - $b) / ($max - $min);
            } elseif ($g == $max) {
                $H = 2.0 + ($b - $r) / ($max - $min);
            } elseif ($b == $max) {
                $H = 4.0 + ($r - $g) / ($max - $min);
            }
        }
        $out = array('hsl', ($H < 0 ? $H + 6 : $H) * 60, $S * 100, $L * 100);
        if (count($color) > 4) {
            $out[] = $color[4];
        }
        // copy alpha
        return $out;
    }