示例#1
0
 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;
 }
示例#2
0
        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));
 }
示例#5
0
 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));
        }