Esempio n. 1
0
            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);
            }
Esempio n. 3
0
            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);
            }
Esempio n. 4
0
            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);
            }
Esempio n. 5
0
            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);
            }
Esempio n. 6
0
            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);
            }
Esempio n. 7
0
            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);
            }
Esempio n. 8
0
            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);
            }
Esempio n. 9
0
            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);
            }
Esempio n. 10
0
            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);
            }
Esempio n. 11
0
            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);
            }
Esempio n. 12
0
            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);
            }
Esempio n. 13
0
            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);
            }
Esempio n. 14
0
            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);
            }
Esempio n. 15
0
            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);
            }
Esempio n. 16
0
            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);
            }
Esempio n. 17
0
            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);
            }
Esempio n. 18
0
            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);
            }
Esempio n. 19
0
            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);
        }
Esempio n. 21
0
        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
     };
 }
Esempio n. 23
0
        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);
        }
Esempio n. 26
0
        /// <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);
        }
Esempio n. 28
0
        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))));
        }