Exemple #1
0
        /// <summary>
        /// Devuelve una versión del mismo tono de color pero con el nivel de brillo perceprual especificado.
        /// </summary>
        public static Color WithBrightnessPerceptual(this Color color, float brightnessPerceptual)
        {
            if (color.BrightnessPerceptual() < 0.001f)
            {
                return(new Color(brightnessPerceptual, brightnessPerceptual, brightnessPerceptual, color.a));
            }

            float factor = brightnessPerceptual / color.BrightnessPerceptual();

            float r = color.r * factor;
            float g = color.g * factor;
            float b = color.b * factor;

            float a = color.a;

            return(new Color(r, g, b, a));
        }