public void Equals_Same() { var first = new xyChromaticity(x: .1, y: .205); var second = new xyChromaticity(x: .1, y: .205); CustomAssert.EqualsWithHashCode(first, second); }
public void HowToComputeColorFromCCT() { double temperature = 3000; // in K xyChromaticity chromaticity = CCTConverter.GetChromaticityOfCCT(temperature); // asserts Assert.Equal(0.43657898148148144, chromaticity.x, DoubleComparer); Assert.Equal(0.4041745241092054, chromaticity.y, DoubleComparer); IColorConverter <xyChromaticity, RGBColor> converter = new ConverterBuilder().Fromxy(Illuminants.D65).ToRGB(RGBWorkingSpaces.sRGB).Build(); RGBColor color = converter.Convert(chromaticity); // asserts Assert.Equal(1.282323002024544, color.R, DoubleComparer); Assert.Equal(0.92870160729369322, color.G, DoubleComparer); Assert.Equal(0.55886769485605214, color.B, DoubleComparer); color = color.NormalizeIntensity(); // asserts Assert.Equal(1, color.R, DoubleComparer); Assert.Equal(0.72423375844264681, color.G, DoubleComparer); Assert.Equal(0.4358244326692311, color.B, DoubleComparer); color.ToRGB8Bit(out var r, out var g, out var b); // asserts Assert.Equal(255, r); Assert.Equal(185, g); Assert.Equal(111, b); }
public void Equals_Different() { var first = new xyChromaticity(x: .2, y: .205); var second = new xyChromaticity(x: .1, y: .205); CustomAssert.NotEqualsWithHashCode(first, second); }
public void SamplesXy() { // red var c1 = new xyChromaticity(0.5736, 0.3209); // white/gray/black (relative to D65 illuminant) var c2 = new xyChromaticity(0.3127, 0.3290); }
public void Dctor() { const double x1 = 10; const double y1 = 20.5; var(x2, y2) = new xyChromaticity(x1, y1); Assert.Equal(x1, x2); Assert.Equal(y1, y2); }
public void VectorCtor() { var first = new xyChromaticity(x: .1, y: .205); var vector = new[] { .1, .205 }; var second = new xyChromaticity(vector); CustomAssert.EqualsWithHashCode(first, second); Assert.Equal(vector, second.Vector); }
public void ChromaticityAndXySpace() { var converter = new ConverterBuilder().Fromxy().ToXYZ().Build(); var d93Chromaticity = new xyChromaticity(0.28315, 0.29711); var d93WhitePoint = converter.Convert(d93Chromaticity); // XYZ [X=0.95, Y=1, Z=1.41] Assert.Equal(0.95301403520581607, d93WhitePoint.X); Assert.Equal(1, d93WhitePoint.Y); Assert.Equal(1.4127427552085088, d93WhitePoint.Z); }
public void HowToComputeTemperatureOfAColor() { RGBColor color = RGBColor.FromRGB8Bit(255, 121, 0); IColorConverter <RGBColor, xyChromaticity> converter = new ConverterBuilder().FromRGB(RGBWorkingSpaces.sRGB).Toxy(Illuminants.D65).Build(); xyChromaticity chromaticity = converter.Convert(color); // xy [x=0.55, y=0.4] // asserts Assert.Equal(0.55117772083302841, chromaticity.x, DoubleComparer); Assert.Equal(0.40053533933847751, chromaticity.y, DoubleComparer); double temperature = CCTConverter.GetCCTOfChromaticity(chromaticity); // 1293 K // asserts Assert.Equal(1293.0206041090441, temperature, DoubleComparer); }
public void XyToRGB() { var inputXy = new xyChromaticity(0.5736, 0.3209); var rgbWorkingSpace = RGBWorkingSpaces.sRGB; var xyToLinearRgb = new ConverterBuilder().Fromxy(rgbWorkingSpace.WhitePoint).ToLinearRGB(rgbWorkingSpace).Build(); var linearRgb = xyToLinearRgb.Convert(inputXy); // LinearRGB [R=4.09, G=0.16, B=0.24] var normalizedLinearRgb = linearRgb.NormalizeIntensity(); // LinearRGB [R=1, G=0.04, B=0.06] var linearRgbToRgb = new ConverterBuilder().FromLinearRGB(rgbWorkingSpace).ToRGB(rgbWorkingSpace).Build(); var outputRgb = linearRgbToRgb.Convert(normalizedLinearRgb); // RGB [R=1, G=0.22, B=0.27] Assert.Equal(4.09118633506919, linearRgb.R); Assert.Equal(0.1571363198987878, linearRgb.G); Assert.Equal(0.24301157278955215, linearRgb.B); Assert.Equal(0.9999999999999999, outputRgb.R); Assert.Equal(0.21628795305057674, outputRgb.G); Assert.Equal(0.2703317877324105, outputRgb.B); }
public void ToString_Simple() { var color = new xyChromaticity(x: .1, y: .205); Assert.Equal("xy [x=0.1, y=0.21]", color.ToString()); }