public ColorBrightnessDifference(Color color1, Color color2) { Color1 = color1; Color2 = color2; Diff = Math.Round(Math.Abs(ColorServices.GetBrightness(color1) - ColorServices.GetBrightness(color2)), 3); Acceptable = Diff >= Threshold; }
public ActionResult <double> GetLuminance(string color) { if (!int.TryParse(color, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out _)) { ModelState.AddModelError(nameof(color), $"The color [{color}] is invalid. This API endpoint accepts a HEX number as a color."); return(BadRequest(ModelState)); } return(ColorServices.GetLuminance(ColorTranslator.FromHtml("#" + color))); }
public void GetColorContrastTests() { Assert.AreEqual(1.0, ColorServices.GetContrastRatio(Color.White, Color.White)); Assert.AreEqual(21.0, ColorServices.GetContrastRatio(Color.Black, Color.White)); // Pure red(#FF0000) has a ratio of 4:1. I am red text. // Pure green (#00FF00) has a very low ratio of 1.4:1. I am green text. // Pure blue (#0000FF) has a contrast ratio of 8.6:1.I am blue text. Assert.AreEqual(3.998, ColorServices.GetContrastRatio(Color.Red, Color.White)); Assert.AreEqual(1.372, ColorServices.GetContrastRatio(Color.FromArgb(255, 0, 255, 0), Color.White)); Assert.AreEqual(8.592, ColorServices.GetContrastRatio(Color.Blue, Color.White)); Assert.AreEqual(1.0, ColorServices.GetContrastRatio(ColorTranslator.FromHtml("#a"), ColorTranslator.FromHtml("#b"))); }
public void GetLuminanceTests() { // the relative brightness of any point in a color space, normalized to 0 for darkest black and 1 for lightest white Assert.AreEqual(0, ColorServices.GetLuminance(Color.Black)); Assert.AreEqual(1, ColorServices.GetLuminance(Color.White)); Assert.AreEqual(0.2126, ColorServices.GetLuminance(Color.Red)); Assert.AreEqual(0.48170267036309633, ColorServices.GetLuminance(Color.Orange)); Assert.AreEqual(0.9278, ColorServices.GetLuminance(Color.Yellow)); Assert.AreEqual(0.7152, ColorServices.GetLuminance(Color.FromArgb(255, 0, 255, 0))); Assert.AreEqual(0.0722, ColorServices.GetLuminance(Color.Blue)); Assert.AreEqual(0.031075614863369856, ColorServices.GetLuminance(Color.Indigo)); Assert.AreEqual(0.40315452986676326, ColorServices.GetLuminance(Color.Violet)); }
public ColorContrastRatio(Color color1, Color color2) { Color1 = color1; Color2 = color2; Ratio = ColorServices.GetContrastRatio(color1, color2); }
public void GetColorBrightnessTests(string hex, double brightness) { var color = ColorTranslator.FromHtml(hex); Assert.AreEqual(brightness, ColorServices.GetBrightness(color)); }