internal static IRgb ToColor(ILuv item) { var white = XyzConverter.WhiteReference; const double c = -1.0 / 3.0; var uPrime = (4.0 * white.X) / GetDenominator(white); var vPrime = (9.0 * white.Y) / GetDenominator(white); var a = (1.0 / 3.0) * ((52.0 * item.L) / (item.U + 13 * item.L * uPrime) - 1.0); // ReSharper disable once InconsistentNaming var imteL_16_116 = (item.L + 16.0) / 116.0; var y = item.L > XyzConverter.Kappa * XyzConverter.Epsilon ? imteL_16_116 * imteL_16_116 * imteL_16_116 : item.L / XyzConverter.Kappa; var b = -5.0 * y; var d = y * ((39.0 * item.L) / (item.V + 13.0 * item.L * vPrime) - 5.0); var x = (d - b) / (a - c); var z = x * a + b; var xyz = new Xyz { X = 100 * x, Y = 100 * y, Z = 100 * z }; return(xyz.ToRgb()); }
internal static IRgb ToColor(IYxy item) { var xyz = new Xyz { X = item.X * (item.Y1 / item.Y2), Y = item.Y1, Z = (1.0 - item.X - item.Y2) * (item.Y1 / item.Y2) }; return xyz.ToRgb(); }
internal static IRgb ToColor(IYxy item) { var xyz = new Xyz { X = item.X * (item.Y1 / item.Y2), Y = item.Y1, Z = (1.0 - item.X - item.Y2) * (item.Y1 / item.Y2) }; return(xyz.ToRgb()); }
internal static IRgb ToColor(ILab item) { var y = (item.L + 16.0) / 116.0; var x = item.A / 500.0 + y; var z = y - item.B / 200.0; var white = XyzConverter.WhiteReference; var xyz = new Xyz { X = white.X * (Math.Pow(x, 3) > XyzConverter.Epsilon ? Math.Pow(x, 3) : (x - 16.0 / 116.0) / 7.787), Y = white.Y * (item.L > (XyzConverter.Kappa * XyzConverter.Epsilon) ? Math.Pow(((item.L + 16.0) / 116.0), 3) : item.L / XyzConverter.Kappa), Z = white.Z * (Math.Pow(z, 3) > XyzConverter.Epsilon ? Math.Pow(z, 3) : (z - 16.0 / 116.0) / 7.787) }; return(xyz.ToRgb()); }
internal static IRgb ToColor(ILab item) { var y = (item.L + 16.0) / 116.0; var x = item.A / 500.0 + y; var z = y - item.B / 200.0; var white = XyzConverter.WhiteReference; var x3 = x * x * x; var z3 = z * z * z; var xyz = new Xyz { X = white.X * (x3 > XyzConverter.Epsilon ? x3 : (x - 16.0 / 116.0) / 7.787), Y = white.Y * (item.L > (XyzConverter.Kappa * XyzConverter.Epsilon) ? Math.Pow(((item.L + 16.0) / 116.0), 3) : item.L / XyzConverter.Kappa), Z = white.Z * (z3 > XyzConverter.Epsilon ? z3 : (z - 16.0 / 116.0) / 7.787) }; return xyz.ToRgb(); }
internal static IRgb ToColor(ILab item) { var y = (item.L + 16) / 116.0; var x = item.A / 500.0 + y; var z = y - item.B / 200.0; y = Math.Pow(y, 3) > 0.008856 ? Math.Pow(y, 3) : (y - 16/116)/7.787; x = Math.Pow(x, 3) > 0.008856 ? Math.Pow(x, 3) : (x - 16/116)/7.787; z = Math.Pow(z, 3) > 0.008856 ? Math.Pow(z, 3) : (z - 16/116)/7.787; var xyz = new Xyz { X = RefX*x, Y = RefY*y, Z = RefZ*z }; return xyz.ToRgb(); }
internal static IRgb ToColor(ILab item) { var y = (item.L + 16) / 116.0; var x = item.A / 500.0 + y; var z = y - item.B / 200.0; y = Math.Pow(y, 3) > 0.008856 ? Math.Pow(y, 3) : (y - 16 / 116) / 7.787; x = Math.Pow(x, 3) > 0.008856 ? Math.Pow(x, 3) : (x - 16 / 116) / 7.787; z = Math.Pow(z, 3) > 0.008856 ? Math.Pow(z, 3) : (z - 16 / 116) / 7.787; var xyz = new Xyz { X = RefX * x, Y = RefY * y, Z = RefZ * z }; return(xyz.ToRgb()); }
internal static IRgb ToColor(ILab item) { double y = (item.L + 16.0) / 116.0; double x = item.A / 500.0 + y; double z = y - item.B / 200.0; IXyz white = XyzConverter.WhiteReference; double x3 = x * x * x; double z3 = z * z * z; var xyz = new Xyz { X = white.X * (x3 > XyzConverter.Epsilon ? x3 : (x - 16.0 / 116.0) / 7.787), Y = white.Y * (item.L > (XyzConverter.Kappa * XyzConverter.Epsilon) ? Math.Pow(((item.L + 16.0) / 116.0), 3) : item.L / XyzConverter.Kappa), Z = white.Z * (z3 > XyzConverter.Epsilon ? z3 : (z - 16.0 / 116.0) / 7.787) }; return(xyz.ToRgb()); }
internal static IRgb ToColor(ILuv item) { var white = XyzConverter.WhiteReference; const double c = -1.0 / 3.0; var uPrime = (4.0 * white.X) / GetDenominator(white); var vPrime = (9.0 * white.Y) / GetDenominator(white); var a = (1.0 / 3.0) * ((52.0 * item.L) / (item.U + 13 * item.L * uPrime) - 1.0); var imteL_16_116 = (item.L + 16.0) / 116.0; var y = item.L > XyzConverter.Kappa * XyzConverter.Epsilon ? imteL_16_116 * imteL_16_116 * imteL_16_116 : item.L / XyzConverter.Kappa; var b = -5.0 * y; var d = y * ((39.0 * item.L) / (item.V + 13.0 * item.L * vPrime) - 5.0); var x = (d - b) / (a - c); var z = x * a + b; var xyz = new Xyz { X = 100 * x, Y = 100 * y, Z = 100 * z }; return xyz.ToRgb(); }
internal static IRgb ToColor(ILuv item) { var white = XyzConverter.WhiteReference; const double c = -1.0 / 3.0; var uPrime = 4.0 * white.X / GetDenominator(white); var vPrime = 9.0 * white.Y / GetDenominator(white); var a = 1.0 / 3.0 * (52.0 * item.L / (item.U + 13 * item.L * uPrime) - 1.0); var imteL16116 = (item.L + 16.0) / 116.0; var y = item.L > XyzConverter.Kappa * XyzConverter.Epsilon ? imteL16116 * imteL16116 * imteL16116 : item.L / XyzConverter.Kappa; var b = -5.0 * y; var d = y * (39.0 * item.L / (item.V + 13.0 * item.L * vPrime) - 5.0); var x = (d - b) / (a - c); var z = x * a + b; var xyz = new Xyz { X = 100 * x, Y = 100 * y, Z = 100 * z }; return(xyz.ToRgb()); }