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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
/// <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))); }