internal static IRgb ToColor(IHsl item) { var rangedH = item.H / 360.0; var r = 0.0; var g = 0.0; var b = 0.0; var s = item.S; var l = item.L; if (!l.BasicallyEqualTo(0)) { if (s.BasicallyEqualTo(0)) { r = g = b = l; } else { var temp2 = (l < 0.5) ? l * (1.0 + s) : l + s - (l * s); var temp1 = 2.0 * l - temp2; r = GetColorComponent(temp1, temp2, rangedH + 1.0 / 3.0); g = GetColorComponent(temp1, temp2, rangedH); b = GetColorComponent(temp1, temp2, rangedH - 1.0 / 3.0); } } return(new Rgb { R = 255.0 * r, G = 255.0 * g, B = 255.0 * b }); }
internal static IRgb ToColor(IHsl item) { var h = item.H / 60.0; var s = item.S / 100.0; var l = item.L / 100.0; if (s > 0) { var result = Rotate(h, s, ref l); return(new Rgb { R = (result.R + l) * 255, G = (result.G + l) * 255, B = (result.B + l) * 255 }); } else { return(new Rgb { R = l * 255, G = l * 255, B = l * 255 }); } }
internal static IRgb ToColor(IHsl item) { var rangedH = item.H / 360.0; var r = 0.0; var g = 0.0; var b = 0.0; var s = item.S / 100.0; var l = item.L / 100.0; if (!l.BasicallyEqualTo(0)) { if (s.BasicallyEqualTo(0)) { r = g = b = l; } else { var temp2 = (l < 0.5) ? l * (1.0 + s) : l + s - (l * s); var temp1 = 2.0 * l - temp2; r = GetColorComponent(temp1, temp2, rangedH + 1.0 / 3.0); g = GetColorComponent(temp1, temp2, rangedH); b = GetColorComponent(temp1, temp2, rangedH - 1.0 / 3.0); } } return new Rgb { R = 255.0 * r, G = 255.0 * g, B = 255.0 * b }; }
internal static void ToColorSpace(IRgb color, IHsl item) { // TODO Losing precision var msColor = Color.FromArgb((int)color.R, (int)color.G, (int)color.B); item.H = msColor.GetHue(); item.S = msColor.GetSaturation() * 100.0; item.L = msColor.GetBrightness() * 100.0; }
internal static void ToColorSpace(IRgb color, IHsl item) { var hsl = ToHsl(color); item.H = hsl.Item1; item.S = hsl.Item2; item.L = hsl.Item3; }
protected static void ExpectedValuesForKnownColor(IColorSpace knownColor, IHsl expectedColor) { var target = knownColor.To <Hsl>(); Assert.IsTrue(CloseEnough(expectedColor.H, target.H), "(H)" + expectedColor.H + " != " + target.H); Assert.IsTrue(CloseEnough(expectedColor.S, target.S), "(S)" + expectedColor.S + " != " + target.S); Assert.IsTrue(CloseEnough(expectedColor.L, target.L), "(L)" + expectedColor.L + " != " + target.L); }
protected static void ExpectedValuesForKnownColor(IColorSpace knownColor, IHsl expectedColor) { var target = knownColor.To<Hsl>(); Assert.IsTrue(CloseEnough(expectedColor.H,target.H),"(H)" + expectedColor.H + " != " + target.H); Assert.IsTrue(CloseEnough(expectedColor.S,target.S),"(S)" + expectedColor.S + " != " + target.S); Assert.IsTrue(CloseEnough(expectedColor.L,target.L),"(L)" + expectedColor.L + " != " + target.L); }
protected static void ExpectedValuesForKnownColor(IColorSpace knownColor, IHsl expectedColor) { var target = knownColor.To <Hsl>(); Assert.AreEqual(expectedColor.H, target.H, 1.8, "(H)" + expectedColor.H + " != " + target.H); Assert.AreEqual(expectedColor.S, target.S, 0.5, "(S)" + expectedColor.S + " != " + target.S); Assert.AreEqual(expectedColor.L, target.L, 0.5, "(L)" + expectedColor.L + " != " + target.L); }
internal static void ToColorSpace(IRgb color, IHsl item) { var result = ToColorSpace(color.R / 255d, color.G / 255d, color.B / 255d); item.H = result.H; item.S = result.S; item.L = result.L; // Range expected by HSL is integer item.S = Round(item.S * 100, 3); item.L = Round(item.L * 100, 3); }
public static ColorRGB ToColor(IHsl hsl) { if (hsl.S == 0) { return(new ColorRGB(hsl.L, hsl.L, hsl.L, hsl.A)); } else { var q = (hsl.L < 0.5) ? (hsl.L * (1 + hsl.S)) : (hsl.L + hsl.S - (hsl.L * hsl.S)); var p = (2 * hsl.L) - q; var Hk = hsl.H; var T = new double[3]; T[0] = Hk + (0.333333333333333d); T[1] = Hk; T[2] = Hk - (0.333333333333333d); for (var i = 0; i < 3; i++) { if (T[i] < 0) { T[i] += 1; } if (T[i] > 1) { T[i] -= 1; } if ((T[i] * 6) < 1) { T[i] = p + ((q - p) * 6 * T[i]); } else if ((T[i] * 2) < 1) { T[i] = q; } else if ((T[i] * 3) < 2) { T[i] = p + (q - p) * ((0.666666666666667d) - T[i]) * 6; } else { T[i] = p; } } return(new ColorRGB(T[0], T[1], T[2], hsl.A)); } }
static IHsb FromHSL(IHsl color) { double h, s, b; double hh = color.H; double ll = color.L; double ss = color.S; h = hh; ll = ll * 2; ss = ss * ((ll <= 1) ? ll : 2 - ll); b = (ll + ss) / 2; s = (2 * ss) / (ll + ss); if (double.IsNaN(s)) { s = 0; } return(new ColorHSB(h, s, b)); }
public CmyColor(IHsl hsl) { Initialize(hsl.ToRgb()); }
public HslColor(IHsl hsl) { Ordinals = hsl.Ordinals; }
public HunterLabColor(IHsl hsl) { Initialize(hsl.ToRgb()); }