Exemplo n.º 1
0
        public LChuv Convert(Luv input)
        {
            double L = input.L, u = input.u, v = input.v;
            var    C        = Math.Sqrt(u * u + v * v);
            var    hRadians = Math.Atan2(v, u);
            var    hDegrees = Angle.NormalizeDegree(Angle.GetDegree(hRadians));

            return(new LChuv(L, C, hDegrees, input.Illuminant));
        }
            public void SilverLuvToMunsell()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Munsell("N7.5");

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
            public void SilverLuvToHex()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Hex("c0c0c0");

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 4
0
            public void SilverLuvToHsb()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Hsb {
                    H = 60, S = 0.7874, B = 75.098,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 5
0
            public void SilverLuvToCmyk()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Cmyk {
                    C = .0000148, M = .000, Y = .0000186, K = .24704,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 6
0
            public void WhiteRgbToLuv()
            {
                var knownColor = new Rgb {
                    R = 255, G = 255, B = 255,
                };
                var expectedColor = new Luv {
                    L = 100, U = .00089, V = -.017,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 7
0
            public void SilverLuvToLab()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Lab {
                    L = 77.704, A = .0026, B = -.00696,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 8
0
            public void SilverLuvToLch()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Lch {
                    L = 77.704, C = .0074, H = 290.49463,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 9
0
            public void SilverLuvToHsl()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Hsl {
                    H = 108, S = 0.02, L = 75.098,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 10
0
            public void SteelBlueCmyToLuv()
            {
                var knownColor = new Cmy {
                    C = .72549, M = .49020, Y = .29412,
                };
                var expectedColor = new Luv {
                    L = 52.467, U = -25.107, V = -48.374,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 11
0
            public void BlackRgbToLuv()
            {
                var knownColor = new Rgb {
                    R = 0, G = 0, B = 0,
                };
                var expectedColor = new Luv {
                    L = 0, U = 0, V = 0,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 12
0
            public void GoldenrodRgbToLuv()
            {
                var knownColor = new Rgb {
                    R = 218, G = 165, B = 32,
                };
                var expectedColor = new Luv {
                    L = 70.816, U = 44.368, V = 69.994,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 13
0
            public void AquamarineHsvToLuv()
            {
                var knownColor = new Hsv {
                    H = 160, S = .5, V = 1,
                };
                var expectedColor = new Luv {
                    L = 92.036, U = -55.917, V = 21.99756,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 14
0
            public void SilverLuvToYxy()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Yxy {
                    Y1 = 52.711, X = .31272, Y2 = .32900,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 15
0
            public void SilverLuvToXyz()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Xyz {
                    X = 50.102, Y = 52.711, Z = 57.402,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 16
0
            public void SilverLuvToRgb()
            {
                var knownColor = new Luv {
                    L = 77.704, U = .001, V = -.013,
                };
                var expectedColor = new Rgb {
                    R = 192, G = 192, B = 192,
                };

                ExpectedValuesForKnownColor(knownColor, expectedColor);
            }
Exemplo n.º 17
0
        public XYZ Convert(Luv input)
        {
            double L = input.L, u = input.u, v = input.v;

            var u0 = Compute_u0(input.Illuminant);
            var v0 = Compute_v0(input.Illuminant);

            var Y = L > (CIE.Kappa * CIE.Epsilon)
                ? ((L + 16) / 116).Power(3)
                : (L / CIE.Kappa);

            var a = ((52 * L) / (u + 13 * L * u0) - 1) / 3;
            var b = -5 * Y;
            var c = -1 / 3d;
            var d = Y * ((39 * L) / (v + 13 * L * v0) - 5);

            var X = (d - b) / (a - c);
            var Z = X * a + b;

            if (double.IsNaN(X) || X < 0)
            {
                X = 0;
            }

            if (double.IsNaN(Y) || Y < 0)
            {
                Y = 0;
            }

            if (double.IsNaN(Z) || Z < 0)
            {
                Z = 0;
            }

            var result = new XYZ(X, Y, Z);

            return(result);
        }
Exemplo n.º 18
0
            /// <summary>
            ///
            /// </summary>
            /// <param name="Color"></param>
            /// <returns></returns>
            public override Point PointFromColor(Color Color)
            {
                var luv = new Luv(Color);

                return(PointFromColor(luv.U.Divide(Luv.MaxValue.U), luv.L.Divide(Luv.MaxValue.L)));
            }