private TestColor TestColorLAB()
        {
            var color = ColorLAB.FromColor(testColor);

            var color2      = (ColorRGB)color.ToRgb();;
            var nativeValue = string.Format("L:{0:0.0#} A:{1:0.0#} B:{2:0.0#}", color.L, color.A, color.B);

            return(new TestColor {
                Name = "LAB", Value = color2.ToHex(), NativeValue = nativeValue
            });
        }
示例#2
0
        public static MonochromaticColorScheme FromColor(ColorRGB color)
        {
            //if (flatten) {
            //	var labColors = ColorScheme.GenerateColors (24, 0, .66, .81);
            //	color = color.NearestFlatColor (labColors);
            //}

            var lab = (ColorLAB)ColorLAB.FromColor(color);

            var dark      = new Swatch(DarkColorID, ColorLAB.ToColor(lab.L - 20, lab.A, lab.B));
            var darkened  = new Swatch(DarkenedColorID, ColorLAB.ToColor(lab.L - 10, lab.A, lab.B));
            var primary   = new Swatch(PrimaryColorID, color);
            var lightened = new Swatch(LightenedColorID, ColorLAB.ToColor(lab.L + 10, lab.A, lab.B));
            var light     = new Swatch(LightColorID, ColorLAB.ToColor(lab.L + 20, lab.A, lab.B));

            return(new MonochromaticColorScheme(new Swatch [] { dark, darkened, primary, lightened, light }));
        }
        public void RGBtoLABConversion()
        {
            var rgb          = ColorRGB.FromHex("#6653B2");
            var lab          = (ColorLAB)ColorLAB.FromColor(rgb);
            var rgbConverted = (ColorRGB)lab.ToRgb();

            // LAB
            var l = Math.Truncate(100 * lab.L) / 100;
            var a = Math.Truncate(100 * lab.A) / 100;
            var b = Math.Truncate(100 * lab.B) / 100;

            Assert.AreEqual(l, 41.57);
            Assert.AreEqual(a, 31.37);
            Assert.AreEqual(b, -52.39);             // Differs from Colorize.org which shows -48.16

            // RGB Converted
            Assert.AreEqual(rgbConverted.Red, 102);
            Assert.AreEqual(rgbConverted.Green, 83);
            Assert.AreEqual(rgbConverted.Blue, 178);
        }