public static IColorType AdjustContrast(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.AdjustLightness(1.05).ToColor(); } else { colorToAdjust = colorToAdjust.AdjustLightness(.95).ToColor(); } contrast = colorToAdjust.Contrast(fixedColor); } return(colorToAdjust); }