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 AquamarineHsbToHsl() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Hsl { H = 160, S = 1, L = 0.749019, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void SteelBlueCmyToHsb() { var knownColor = new Cmy { C = .72549, M = .49020, Y = .29412, }; var expectedColor = new Hsb { H = 207, S = 44, B = 49, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToCmyk() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Cmyk { C = .5, M = 0, Y = .16666, K = 0, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void MaroonLchToHsb() { var knownColor = new Lch { L = 24.829, C = 60.093, H = 38.180, }; var expectedColor = new Hsb { H = 0, S = 100, B = 24.5, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void RivergumXyzToHsb() { var knownColor = new Xyz { X = 13.123, Y = 15.372, Z = 13.174, }; var expectedColor = new Hsb { H = 109.999, S = 8.654, B = 40.7843, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AliceBlueHsbToCmyk() { var knownColor = new Hsb { H = 208, S = 100, B = 97, }; var expectedColor = new Cmyk { C = .06, M = .028, Y = 0, K = 0, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void DarkVioletCmykToHsb() { var knownColor = new Cmyk { C = .29858, M = 1, Y = 0, K = .17255, }; var expectedColor = new Hsb { H = 282, S = 100, B = 41, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToLuv() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Luv { L = 92.036, U = -55.917, V = 21.99756, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void WhiteRgbToHsb() { var knownColor = new Rgb { R = 255, G = 255, B = 255, }; var expectedColor = new Hsb { H = 0, S = 0, B = 100, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToXyz() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Xyz { X = 56.396, Y = 80.785, Z = 74.908, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToYxy() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Yxy { Y1 = 80.785, X = .26591, Y2 = .38090, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToRgb() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Rgb { R = 127, G = 255, B = 212, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToLch() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Lch { L = 92.036, C = 46.545, H = 167.957, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsbToLab() { var knownColor = new Hsb { H = 160, S = .5, B = 1, }; var expectedColor = new Lab { L = 92.036, A = -45.521, B = 9.49689, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void BlackRgbToHsb() { var knownColor = new Rgb { R = 0, G = 0, B = 0, }; var expectedColor = new Hsb { H = 0, S = 0, B = 0, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AliceBlueHsbToHsb() { var knownColor = new Hsb { H = 208, S = 100, B = 97, }; var expectedColor = new Hsb { H = 208, S = 100, B = 97, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void GoldenrodRgbToHsb() { var knownColor = new Rgb { R = 218, G = 165, B = 32, }; var expectedColor = new Hsb { H = 43, S = 74, B = 49, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void AquamarineHsvToHsb() { var knownColor = new Hsv { H = 160, S = .5, V = 1, }; var expectedColor = new Hsb { H = 160, S = 100, B = 74.9019, }; ExpectedValuesForKnownColor(knownColor, expectedColor); }
public void RegressionCanConvertRed() { var red = new Rgb(255, 0, 0); var hsb = new Hsb(red).SetBrightness(1); Assert.AreEqual(red, new Rgb(hsb)); var h173 = new Hsb(173 / 360D, 1, 1); var color = new Rgb(h173); Assert.AreEqual(Rgb.FromHex("00FFE1"), color); }
private static Rgb ConvertToRgb(Hsb hsb) { // By: <a href="http://blogs.msdn.com/b/codefx/archive/2012/02/09/create-a-color-picker-for-windows-phone.aspx" title="MSDN" target="_blank">Yi-Lun Luo</a> var chroma = hsb.S * hsb.B; var hue2 = hsb.H / 60; var x = chroma * (1 - Math.Abs(hue2 % 2 - 1)); var r1 = 0d; var g1 = 0d; var b1 = 0d; if (hue2 >= 0 && hue2 < 1) { r1 = chroma; g1 = x; } else if (hue2 >= 1 && hue2 < 2) { r1 = x; g1 = chroma; } else if (hue2 >= 2 && hue2 < 3) { g1 = chroma; b1 = x; } else if (hue2 >= 3 && hue2 < 4) { g1 = x; b1 = chroma; } else if (hue2 >= 4 && hue2 < 5) { r1 = x; b1 = chroma; } else if (hue2 >= 5 && hue2 <= 6) { r1 = chroma; b1 = x; } var m = hsb.B - chroma; return(new Rgb { R = r1 + m, G = g1 + m, B = b1 + m }); }
internal static Rgb ConvertToRgb(Hsb hsb) { // By: <a href="http://blogs.msdn.com/b/codefx/archive/2012/02/09/create-a-color-picker-for-windows-phone.aspx" title="MSDN" target="_blank">Yi-Lun Luo</a> var chroma = hsb.S * hsb.B; var hue2 = hsb.H / 60; var x = chroma * (1 - Math.Abs(hue2 % 2 - 1)); var r1 = 0d; var g1 = 0d; var b1 = 0d; if (hue2 >= 0 && hue2 < 1) { r1 = chroma; g1 = x; } else if (hue2 >= 1 && hue2 < 2) { r1 = x; g1 = chroma; } else if (hue2 >= 2 && hue2 < 3) { g1 = chroma; b1 = x; } else if (hue2 >= 3 && hue2 < 4) { g1 = x; b1 = chroma; } else if (hue2 >= 4 && hue2 < 5) { r1 = x; b1 = chroma; } else if (hue2 >= 5 && hue2 <= 6) { r1 = chroma; b1 = x; } var m = hsb.B - chroma; return new Rgb { R = r1 + m, G = g1 + m, B = b1 + m }; }
private static WriteableBitmap CubeH(int cubeWidth, double columnY) { Algebra.DividePlane(cubeWidth, cubeWidth, _cores, out var dic); var length = dic.Count; var stride = cubeWidth * 4; var a = new byte[stride * cubeWidth]; var step = 1.0 / cubeWidth; var h = 360.0 - columnY * 360.0; Parallel.For(0, length, i => { var d = dic[i]; var str = stride; for (var y = d[1]; y < d[1] + d[3]; y++) { for (var x = d[0]; x < d[0] + d[2]; x++) { var n = y * str + x * 4; var hsb = new Hsb { H = h, S = step * x, B = 1.0 - step * y }; var rgb = hsb.To <Rgb>(); var r = (byte)Math.Round(rgb.R); var g = (byte)Math.Round(rgb.G); var b = (byte)Math.Round(rgb.B); a[n] = b; a[n + 1] = g; a[n + 2] = r; a[n + 3] = 255; } } }); var rect = new Int32Rect(0, 0, cubeWidth, cubeWidth); var img = new WriteableBitmap(cubeWidth, cubeWidth, 96, 96, PixelFormats.Bgr32, null); img.Lock(); img.WritePixels(rect, a, stride, 0); img.Unlock(); img.Freeze(); return(img); }
public Task <Rgb> ApplyFilter(Rgb color) { if (_brightness > 0.95D) { return(Task.FromResult(color)); } var newColor = new Hsb(color); var newBrightness = _brightness * newColor.Brightness; if (newBrightness < 0.01D) { newBrightness = 0; } return(Task.FromResult(new Rgb(newColor.SetBrightness(newBrightness)))); }
public static void Get(Hsb hsb, ColorPickerMode colorMode, out Point cubeXy, out double columnY) { var h = hsb.H; var s = hsb.S; var v = hsb.B; double r = 0.0, g = 0.0, b = 0.0; if ((int)colorMode > 2) { var rgb = hsb.To <Rgb>(); r = rgb.R; g = rgb.G; b = rgb.B; } Count(colorMode, h, s, v, r, g, b, out cubeXy, out columnY); }
/// <summary> /// Create a new color in HSB colorspace /// </summary> /// <param name="hue">hue component. Range: [0, 360]</param> /// <param name="brightness">saturation component. Range: [0, 1]</param> /// <param name="saturation">brightness component. Range: [0, 1]</param> /// <param name="alpha">Alpha component. Range: [0, 255]</param> public static Hsb CreateHsb(double hue, double saturation, double brightness, int alpha) { //range checking //alpha if (alpha > 255) { alpha = 255; } else if (alpha < 0) { alpha = 0; } Hsb result = new Hsb(hue, saturation, brightness); result.Alpha = (byte)alpha; return(result); }
private static WriteableBitmap GetColumnS(int width, int height, Point cubePoint) { Algebra.DividePlane(width, height, _cores, out var dic); var length = dic.Count; var stride = width * 4; var a = new byte[stride * height]; var step = 1.0 / height; var h = cubePoint.X * 360.0; var b = 1.0 - cubePoint.Y; Parallel.For(0, length, i => { var d = dic[i]; var str = stride; var stp = step; for (var y = d[1]; y < d[1] + d[3]; y++) { for (var x = d[0]; x < d[0] + d[2]; x++) { var n = y * str + x * 4; var hsb = new Hsb { H = h, S = 1.0 - stp * y, B = b }; var rgb = hsb.To <Rgb>(); a[n] = (byte)Math.Round(rgb.B); a[n + 1] = (byte)Math.Round(rgb.G); a[n + 2] = (byte)Math.Round(rgb.R); a[n + 3] = 255; } } }); var rect = new Int32Rect(0, 0, width, height); var img = new WriteableBitmap(width, height, 96, 96, PixelFormats.Bgr32, null); img.Lock(); img.WritePixels(rect, a, stride, 0); img.Unlock(); img.Freeze(); return(img); }
public Task <CommandResponse> SetColor(System.Drawing.Color color) { Hsv hsv = new Hsb() { H = color.GetHue(), S = color.GetSaturation(), B = color.GetBrightness() }.To <Hsv>(); Commands commands = new Commands(); commands.AddCommand("work_mode", "colour"); commands.AddCommand("colour_data_v2", new { h = Math.Round(hsv.H), s = Math.Round(hsv.S * 1000), v = Math.Round(hsv.V * 1000) }); return(rumahTuya.SendCommands(deviceId, commands)); }
public void CanConvertRgb() { var c1 = new Hsb(new Rgb(38, 33, 33)); Assert.AreEqual(c1, new Hsb(0, 0.13157894D, 0.14901960D)); }
public void CanCopyColor() { var c1 = new Hsb(234, 0.2D, 0.5D); Assert.AreEqual(c1, new Hsb(c1)); }
/// <summary> /// Applies the filter to a color, called per side /// </summary> /// <param name="color">The color to filter</param> /// <returns></returns> public Task <Rgb> ApplyFilter(Rgb color) { var hsb = new Hsb(color); return(Task.FromResult(new Rgb(hsb.SetBrightness(1)))); }