Habari\ColorUtils::rgb_hsv PHP Метод

rgb_hsv() публичный статический Метод

Convert an RGB array to a HSV array.
public static rgb_hsv ( $rgb_arr )
    public static function rgb_hsv($rgb_arr)
    {
        $var_R = $rgb_arr['r'] / 255;
        $var_G = $rgb_arr['g'] / 255;
        $var_B = $rgb_arr['b'] / 255;
        $var_Min = min($var_R, $var_G, $var_B);
        $var_Max = max($var_R, $var_G, $var_B);
        $del_Max = $var_Max - $var_Min;
        $V = $var_Max;
        if ($del_Max == 0) {
            $H = 0;
            $S = 0;
        } else {
            $S = $del_Max / $var_Max;
            $del_R = (($var_Max - $var_R) / 6 + $del_Max / 2) / $del_Max;
            $del_G = (($var_Max - $var_G) / 6 + $del_Max / 2) / $del_Max;
            $del_B = (($var_Max - $var_B) / 6 + $del_Max / 2) / $del_Max;
            if ($var_R == $var_Max) {
                $H = $del_B - $del_G;
            } elseif ($var_G == $var_Max) {
                $H = 1 / 3 + $del_R - $del_B;
            } elseif ($var_B == $var_Max) {
                $H = 2 / 3 + $del_G - $del_R;
            } else {
                $H = 0;
                // This never happens, since one of the three is always the max
            }
            if ($H < 0) {
                $H += 1;
            }
            if ($H > 1) {
                $H -= 1;
            }
        }
        return self::hsv_hsvarr($H * 360, $S * 255, $V * 255);
    }