Ejemplo n.º 1
0
        public void LMSColor()
        {
            var first  = new LMSColor(0, 0.5, 0.445);
            var second = new LMSColor(0, 0.5, 0.445);

            Assert.Equal(first, (object)second);
        }
Ejemplo n.º 2
0
    public void Equals_Same()
    {
        var first  = new LMSColor(l: .1, m: .205, s: .45445);
        var second = new LMSColor(l: .1, m: .205, s: .45445);

        CustomAssert.EqualsWithHashCode(first, second);
    }
Ejemplo n.º 3
0
    public void Equals_Different()
    {
        var first  = new LMSColor(l: .2, m: .205, s: .45445);
        var second = new LMSColor(l: .1, m: .205, s: .45445);

        CustomAssert.NotEqualsWithHashCode(first, second);
    }
Ejemplo n.º 4
0
        /// <summary>
        /// Transforms XYZ color to destination reference white.
        /// </summary>
        public XYZColor Transform(XYZColor sourceColor, XYZColor sourceWhitePoint, XYZColor targetWhitePoint)
        {
            if (sourceColor == null)
            {
                throw new ArgumentNullException("sourceColor");
            }
            if (sourceWhitePoint == null)
            {
                throw new ArgumentNullException("sourceWhitePoint");
            }
            if (targetWhitePoint == null)
            {
                throw new ArgumentNullException("targetWhitePoint");
            }

            if (sourceWhitePoint.Equals(targetWhitePoint))
            {
                return(sourceColor);
            }

            LMSColor sourceColorLMS      = _conversionToLMS.Convert(sourceColor);
            LMSColor sourceWhitePointLMS = _conversionToLMS.Convert(sourceWhitePoint);
            LMSColor targetWhitePointLMS = _conversionToLMS.Convert(targetWhitePoint);

            Matrix diagonalMatrix = MatrixFactory.CreateDiagonal(targetWhitePointLMS.L / sourceWhitePointLMS.L, targetWhitePointLMS.M / sourceWhitePointLMS.M, targetWhitePointLMS.S / sourceWhitePointLMS.S);

            var      targetColorLMS = new LMSColor(diagonalMatrix.MultiplyBy(sourceColorLMS.Vector));
            XYZColor targetColor    = _conversionToXYZ.Convert(targetColorLMS);

            return(targetColor);
        }
Ejemplo n.º 5
0
    public void VectorCtor()
    {
        var first  = new LMSColor(l: .2, m: .205, s: .45445);
        var vector = new[] { .2, .205, .45445 };
        var second = new LMSColor(vector);

        CustomAssert.EqualsWithHashCode(first, second);
        Assert.Equal(vector, second.Vector);
    }
Ejemplo n.º 6
0
    public void Dctor()
    {
        const double l1 = .1;
        const double m1 = .205;
        const double s1 = .45445;

        var(l2, m2, s2) = new LMSColor(l1, m1, s1);
        Assert.Equal(l1, l2);
        Assert.Equal(m1, m2);
        Assert.Equal(s1, s2);
    }
Ejemplo n.º 7
0
        public LinearRGBColor ToLinearRGB(LMSColor color)
        {
            if (color == null)
            {
                throw new ArgumentNullException("color");
            }

            XYZColor       xyzColor = ToXYZ(color);
            LinearRGBColor result   = ToLinearRGB(xyzColor);

            return(result);
        }
Ejemplo n.º 8
0
    public void LmsToRgb()
    {
        var inputLms        = new LMSColor(0.3823, 0.0811, 0.07162);
        var rgbWorkingSpace = RGBWorkingSpaces.sRGB;

        var lmsToRgb  = new ConverterBuilder().FromLMS(rgbWorkingSpace.WhitePoint).ToRGB(rgbWorkingSpace).Build();
        var outputRgb = lmsToRgb.Convert(inputLms); // RGB [R=0.94, G=0.2, B=0.25]

        Assert.Equal(0.9369533174707416, outputRgb.R);
        Assert.Equal(0.2001250260835063, outputRgb.G);
        Assert.Equal(0.2509854069250157, outputRgb.B);
    }
        public HunterLabColor ToHunterLab(LMSColor color)
        {
            if (color == null)
            {
                throw new ArgumentNullException("color");
            }

            XYZColor       xyzColor = ToXYZ(color);
            HunterLabColor result   = ToHunterLab(xyzColor);

            return(result);
        }
Ejemplo n.º 10
0
        public LMSColor ToLMS(LChabColor color)
        {
            if (color == null)
            {
                throw new ArgumentNullException("color");
            }

            XYZColor xyzColor = ToXYZ(color);
            LMSColor result   = ToLMS(xyzColor);

            return(result);
        }
Ejemplo n.º 11
0
        public xyYColor ToxyY(LMSColor color)
        {
            if (color == null)
            {
                throw new ArgumentNullException("color");
            }

            XYZColor xyzColor = ToXYZ(color);
            xyYColor result   = ToxyY(xyzColor);

            return(result);
        }
Ejemplo n.º 12
0
        public XYZColor ToXYZ(LMSColor color)
        {
            if (color == null)
            {
                throw new ArgumentNullException("color");
            }

            // conversion
            var      converter = _cachedXYZAndLMSConverter;
            XYZColor converted = converter.Convert(color);

            return(converted);
        }
Ejemplo n.º 13
0
    public void Samples()
    {
        // red
        var c1 = new LMSColor(0.3823, 0.0811, 0.07162);

        // white (D65)
        var c2 = new LMSColor(0.9414, 1.0404, 1.0895);

        // gray (D65)
        var c3 = new LMSColor(0.2015, 0.2227, 0.2332);

        // black
        var c4 = new LMSColor(0, 0, 0);
    }
Ejemplo n.º 14
0
        public LMSColor ToLMS <T>(T color) where T : IColorVector
        {
            if (color == null)
            {
                throw new ArgumentNullException("color");
            }

            LMSColor converted = color as LMSColor;

            if (converted != null)
            {
                return(converted);
            }
            else
            {
                dynamic source = color;

                return(ToLMS(source));
            }
        }
        /// <summary>
        /// Transforms XYZ color to destination reference white.
        /// </summary>
        public XYZColor Transform(XYZColor sourceColor, XYZColor sourceWhitePoint, XYZColor targetWhitePoint)
        {
            if (sourceColor == null) throw new ArgumentNullException("sourceColor");
            if (sourceWhitePoint == null) throw new ArgumentNullException("sourceWhitePoint");
            if (targetWhitePoint == null) throw new ArgumentNullException("targetWhitePoint");

            if (sourceWhitePoint.Equals(targetWhitePoint))
                return sourceColor;

            LMSColor sourceColorLMS = _conversionToLMS.Convert(sourceColor);
            LMSColor sourceWhitePointLMS = _conversionToLMS.Convert(sourceWhitePoint);
            LMSColor targetWhitePointLMS = _conversionToLMS.Convert(targetWhitePoint);

            Matrix diagonalMatrix = MatrixFactory.CreateDiagonal(targetWhitePointLMS.L / sourceWhitePointLMS.L, targetWhitePointLMS.M / sourceWhitePointLMS.M, targetWhitePointLMS.S / sourceWhitePointLMS.S);

            var targetColorLMS = new LMSColor(diagonalMatrix.MultiplyBy(sourceColorLMS.Vector));
            XYZColor targetColor = _conversionToXYZ.Convert(targetColorLMS);
            return targetColor;
        }
Ejemplo n.º 16
0
    public void ToString_Simple()
    {
        var color = new LMSColor(l: .1, m: .205, s: .45445);

        Assert.Equal("LMS [L=0.1, M=0.21, S=0.45]", color.ToString());
    }