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); }
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); }
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); }
/// <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); }
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); }
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); }
public LinearRGBColor ToLinearRGB(LMSColor color) { if (color == null) { throw new ArgumentNullException("color"); } XYZColor xyzColor = ToXYZ(color); LinearRGBColor result = ToLinearRGB(xyzColor); return(result); }
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); }
public LMSColor ToLMS(LChabColor color) { if (color == null) { throw new ArgumentNullException("color"); } XYZColor xyzColor = ToXYZ(color); LMSColor result = ToLMS(xyzColor); return(result); }
public xyYColor ToxyY(LMSColor color) { if (color == null) { throw new ArgumentNullException("color"); } XYZColor xyzColor = ToXYZ(color); xyYColor result = ToxyY(xyzColor); return(result); }
public XYZColor ToXYZ(LMSColor color) { if (color == null) { throw new ArgumentNullException("color"); } // conversion var converter = _cachedXYZAndLMSConverter; XYZColor converted = converter.Convert(color); return(converted); }
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); }
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; }
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()); }