ARCed.Core.ColorHandler.RGBtoHSV C# (CSharp) Method

RGBtoHSV() public static method

Converts an ARGB color to a HSV color.
public static RGBtoHSV ( ARGB argb ) : HSV
argb ARGB ARGB color to convert
return HSV
        public static HSV RGBtoHSV(ARGB argb)
        {
            double h, s;
            var r = (double)argb.Red / 255;
            var g = (double)argb.Green / 255;
            var b = (double)argb.Blue / 255;
            var min = Math.Min(Math.Min(r, g), b);
            var max = Math.Max(Math.Max(r, g), b);
            var v = max;
            var delta = max - min;
            if (Equals(max, 0.0d) || Equals(delta, 0.0d))
            {
                s = 0;
                h = 0;
            }
            else
            {
                s = delta / max;
                if (Equals(r, max))
                    h = (g - b) / delta;
                else if (Equals(g, max))
                    h = 2 + (b - r) / delta;
                else
                    h = 4 + (r - g) / delta;
            }
            h *= 60;
            if (h < 0)
                h += 360;
            return new HSV(argb.Alpha, (int)(h / 360 * 255), (int)(s * 255), (int)(v * 255));
        }