Beispiel #1
0
        public static Color[] GetDarkShades(Color color) // obtengo las shades oscuras del color selecionado
        {
            DarkShades = new Color[4];
            HSL hsl = color.ToHsl();

            if (hsl.h == 0 && hsl.s == 0)
            {
                byte l_aux = 5;
                for (int i = 0; i < DarkShades.Length; i++)
                {
                    hsl.l         = l_aux;
                    DarkShades[i] = hsl.ToRgb();
                    l_aux        += 10;
                }
            }
            else
            {
                byte l_aux = 10;
                for (int i = 0; i < DarkShades.Length; i++)
                {
                    hsl.l         = l_aux;
                    DarkShades[i] = hsl.ToRgb();
                    l_aux        += 10;
                }
            }

            return(DarkShades);
        }
Beispiel #2
0
        public static Color[] GetLightShades(Color color) // obtengo las shades claras del color selecionado
        {
            // esto de las shades o shading s el mismo color pero en tonalidades mas claras y obscuras que pueden servr para sombrear
            // los tonos claros los obtengo disminuyendo la luminosidad del color y los oscuros aumentando la luminosidad,
            // es por eso que obtengo el color en hsl
            LightShades = new Color[4];
            HSL hsl = color.ToHsl();

            if (hsl.h == 0 && hsl.s == 0) // detyecto si el color es alguno tono de gris, es decir si se encuentra en la escala de grises para obtenerlos un poco diferente,pero la esencia del algoritmo es la misma
            {
                byte l_aux = 85;
                for (int i = 0; i < LightShades.Length; i++)
                {
                    hsl.l          = l_aux;
                    LightShades[i] = hsl.ToRgb();
                    l_aux         -= 10;
                }
            }
            else
            {
                byte l_aux = 95;
                for (int i = 0; i < LightShades.Length; i++)
                {
                    hsl.l          = l_aux;
                    LightShades[i] = hsl.ToRgb();
                    l_aux         -= 10;
                }
            }

            return(LightShades);
        }
Beispiel #3
0
        public static Color getRandomColor() // obtengo un color aleatorio
        {
            /*
             * obtengo el color en hsl, para ayudarme un poco de que el color que se selecciona sea atractivo y no se vea feo
             * el algoritmo elige primero un valor para h de 0 a 360, despues para s de 35 a 100, y por ultimo de l de 20 a 85
             * lo hago entre esos rangos porque esos son los rangos en los cuales la saturacion del color es adeccuada y el color
             * no se encuentra en la escala de grises o es muy laro o muy oscuro con esos valores de luminosidad
             * voy cambiando la semila de generacion de los valores con respecto al primer valor para que haya mas aleatoriedad
             * pero no tanta y que el color no sea bonito, pero de esto ultimo la verdad no estoy muy segura, puede mejorar.
             */
            int    h;
            byte   s, l;
            Random rnd = new Random();

            h   = rnd.Next(360);
            rnd = new Random(h * 10);
            s   = (byte)rnd.Next(35, 100);
            rnd = new Random(h * 5);
            l   = (byte)rnd.Next(20, 85);
            HSL   hsl      = HSL.FromHSL(h, s, l);
            Color rndColor = hsl.ToRgb();

            rndColor.A = 250;
            return(rndColor);
        }