Esempio n. 1
0
        public static IColorType WithContrast(this IColorType colorToAdjust, IColorType fixedColor, double minimumRequiredContrast = 3)
        {
            var contrast = colorToAdjust.Contrast(fixedColor);
            int tries    = 0;

            while (contrast < minimumRequiredContrast &&
                   tries++ < 30)
            {
                if (fixedColor.Luminance0To1() < .5)
                {
                    colorToAdjust = colorToAdjust.WithLightnessAdjustment(1.05).ToColor();
                }
                else
                {
                    colorToAdjust = colorToAdjust.WithLightnessAdjustment(.95).ToColor();
                }
                contrast = colorToAdjust.Contrast(fixedColor);
            }

            return(colorToAdjust);
        }