public static HslColor FromRgb()

in sources/Google.Solutions.Mvvm/Drawing/HslColor.cs [89:127]


        public static HslColor FromRgb(int pR, int pG, int pB)
        {
            var r = pR / 255f;
            var g = pG / 255f;
            var b = pB / 255f;

            var max = (r > g && r > b) ? r : (g > b) ? g : b;
            var min = (r < g && r < b) ? r : (g < b) ? g : b;

            float h, s, l;
            l = (max + min) / 2.0f;

            if (max == min)
            {
                h = s = 0.0f;
            }
            else
            {
                var d = max - min;
                s = (l > 0.5f) ? d / (2.0f - max - min) : d / (max + min);

                if (r > g && r > b)
                {
                    h = (g - b) / d + (g < b ? 6.0f : 0.0f);
                }
                else if (g > b)
                {
                    h = (b - r) / d + 2.0f;
                }
                else
                {
                    h = (r - g) / d + 4.0f;
                }

                h /= 6.0f;
            }

            return new HslColor(h, s, l);
        }