コード例 #1
0
 /// <summary>Creates an instance for the default language.</summary>
 /// <returns>A repository.</returns>
 public IColorRepository ForDefaultCulture()
 {
     var colorConverter = new ColorConverter();
     var colorModelConverter = new ColorModelConverter(colorConverter);
     var colorPaletteConverter = new ColorPaletteConverter(colorConverter, colorModelConverter);
     var colorPaletteCollectionConverter = new ColorPaletteCollectionConverter(colorPaletteConverter);
     return new ColorRepository(this.serviceClient, colorPaletteCollectionConverter);
 }
コード例 #2
0
        /// <summary>Creates an instance for the default language.</summary>
        /// <returns>A repository.</returns>
        public IColorRepository ForDefaultCulture()
        {
            var colorConverter                  = new ColorConverter();
            var colorModelConverter             = new ColorModelConverter(colorConverter);
            var colorPaletteConverter           = new ColorPaletteConverter(colorConverter, colorModelConverter);
            var colorPaletteCollectionConverter = new ColorPaletteCollectionConverter(colorPaletteConverter);

            return(new ColorRepository(this.serviceClient, colorPaletteCollectionConverter));
        }
コード例 #3
0
        /// <summary>Creates an instance for the given language.</summary>
        /// <param name="culture">The culture.</param>
        /// <returns>A repository.</returns>
        public IColorRepository ForCulture(CultureInfo culture)
        {
            var colorConverter                  = new ColorConverter();
            var colorModelConverter             = new ColorModelConverter(colorConverter);
            var colorPaletteConverter           = new ColorPaletteConverter(colorConverter, colorModelConverter);
            var colorPaletteCollectionConverter = new ColorPaletteCollectionConverter(colorPaletteConverter);
            IColorRepository repository         = new ColorRepository(this.serviceClient, colorPaletteCollectionConverter);

            repository.Culture = culture;
            return(repository);
        }
コード例 #4
0
        /// <summary>Creates an instance for the default language.</summary>
        /// <returns>A repository.</returns>
        public override IColorRepository ForDefaultCulture()
        {
            var colorConverter               = new ColorConverter();
            var colorModelConverter          = new ColorModelConverter(colorConverter);
            var colorPaletteConverter        = new ColorPaletteConverter(colorConverter, colorModelConverter);
            var identifiersResponseConverter = new ResponseConverter <ICollection <int>, ICollection <int> >(new ConverterAdapter <ICollection <int> >());
            var responseConverter            = new ResponseConverter <ColorPaletteDTO, ColorPalette>(colorPaletteConverter);
            var bulkResponseConverter        = new DictionaryRangeResponseConverter <ColorPaletteDTO, int, ColorPalette>(colorPaletteConverter, color => color.ColorId);
            var pageResponseConverter        = new CollectionPageResponseConverter <ColorPaletteDTO, ColorPalette>(colorPaletteConverter);

            return(new ColorRepository(this.serviceClient, identifiersResponseConverter, responseConverter, bulkResponseConverter, pageResponseConverter));
        }
コード例 #5
0
        /// <summary>
        //  Try to parse a color given in different flavours (hex, rgb, name)
        /// </summary>
        public static bool TryParseColor(string strVal, double alpha, out Color color)
        {
            // 1: color is specified in rgb values
            if (strVal.StartsWith("rgb(", StringComparison.OrdinalIgnoreCase))
            {
                var      str   = strVal.Substring(4, strVal.Length - 5);
                string[] parts = str.Split(',');

                if (parts.Length != 3)
                {
                    color = Colors.Black;
                    return(false);
                }

                try
                {
                    string redStr   = parts[0].Trim();
                    string greenStr = parts[1].Trim();
                    string blueStr  = parts[2].Trim();
                    byte   red;
                    byte   green;
                    byte   blue;

                    if (string.IsNullOrWhiteSpace(redStr) ||
                        string.IsNullOrWhiteSpace(greenStr) ||
                        string.IsNullOrWhiteSpace(blueStr))
                    {
                        red   = 0;
                        green = 0;
                        blue  = 0;
                    }
                    else
                    {
                        red   = (byte)ParseColorValue(redStr);
                        green = (byte)ParseColorValue(greenStr);
                        blue  = (byte)ParseColorValue(blueStr);
                    }

                    color = Color.FromArgb((byte)(alpha * 255), red, green, blue);
                    return(true);
                }
                catch
                {
                }

                color = Colors.Black;
                return(false);
            }

            // 2: color is specified in rgba values
            if (strVal.StartsWith("rgba(", StringComparison.OrdinalIgnoreCase))
            {
                var      str   = strVal.Substring(5, strVal.Length - 6);
                string[] parts = str.Split(',');

                if (parts.Length != 4)
                {
                    color = Colors.Black;
                    return(false);
                }

                try
                {
                    string redStr   = parts[0].Trim();
                    string greenStr = parts[1].Trim();
                    string blueStr  = parts[2].Trim();
                    string alphaStr = parts[3].Trim();
                    byte   red;
                    byte   green;
                    byte   blue;
                    double alphaD;

                    if (string.IsNullOrWhiteSpace(alphaStr) ||
                        string.IsNullOrWhiteSpace(redStr) ||
                        string.IsNullOrWhiteSpace(greenStr) ||
                        string.IsNullOrWhiteSpace(blueStr))
                    {
                        alphaD = 1;
                        red    = 0;
                        green  = 0;
                        blue   = 0;
                    }
                    else
                    {
                        red    = (byte)ParseColorValue(redStr);
                        green  = (byte)ParseColorValue(greenStr);
                        blue   = (byte)ParseColorValue(blueStr);
                        alphaD = DoubleWithUnitParser.Parse(alphaStr);
                    }

                    color = Color.FromArgb((byte)(alpha * alphaD * 255), red, green, blue);
                    return(true);
                }
                catch
                {
                }

                color = Colors.Black;
                return(false);
            }

            // 3: color is specified in hsl values
            if (strVal.StartsWith("hsl(", StringComparison.OrdinalIgnoreCase))
            {
                var      str   = strVal.Substring(4, strVal.Length - 5);
                string[] parts = str.Split(',');

                if (parts.Length != 3)
                {
                    color = Colors.Black;
                    return(false);
                }
                try
                {
                    string hueStr        = parts[0].Trim();
                    string saturationStr = parts[1].Trim();
                    string luminosityStr = parts[2].Trim();

                    if (string.IsNullOrWhiteSpace(hueStr) ||
                        string.IsNullOrWhiteSpace(saturationStr) ||
                        string.IsNullOrWhiteSpace(luminosityStr))
                    {
                        color = Colors.Black;
                        return(true);
                    }
                    else
                    {
                        var hue        = DoubleWithUnitParser.Parse(hueStr);
                        var saturation = DoubleWithUnitParser.Parse(saturationStr);
                        var luminosity = DoubleWithUnitParser.Parse(luminosityStr);

                        color = ColorModelConverter.ConvertHlsToRgb(alpha, hue, saturation, luminosity);
                        return(true);
                    }
                }
                catch
                {
                }

                color = Colors.Black;
                return(false);
            }

            // 4: color is either given as name or hex values
            try
            {
                var color2 = (Color)ColorConverter.ConvertFromString(strVal);
                color = Color.FromArgb((byte)(alpha * 255), color2.R, color2.G, color2.B);
                return(true);
            }
            catch
            {
            }

            color = Colors.Black;
            return(false);
        }
コード例 #6
0
 public static sRgbColor TosRgbColor(this RgbColor rgbColor)
 {
     return(ColorModelConverter.RgbTosRgb(rgbColor));
 }
コード例 #7
0
 public static RgbColor ToRgbColor(this sRgbColor srgbColor)
 {
     return(ColorModelConverter.sRgbToRgb(srgbColor));
 }
コード例 #8
0
 public static RgbColor ToRgbColor(this HslColor hslColor)
 {
     return(ColorModelConverter.HslColorToRgbColor(hslColor));
 }
コード例 #9
0
 public static HslColor ToHslColor(this HsvColor hsvColor)
 {
     return(ColorModelConverter.HsvColorToHslColor(hsvColor));
 }
コード例 #10
0
 public ColorModelConverterTests()
 {
     this.colorConverter = new ColorConverterMock();
     this.converter = new ColorModelConverter(this.colorConverter);
 }
コード例 #11
0
 public void HSLtoRGB_ArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() => ColorModelConverter.HSLtoRGB(null));
 }
コード例 #12
0
        public void HSLtoRGB_CorrectCalculation(HSL hsl, RGB expected)
        {
            RGB result = ColorModelConverter.HSLtoRGB(hsl);

            Assert.That(result, Is.EqualTo(expected));
        }
コード例 #13
0
 public void RGBtoHSL_ArgumentNullException()
 {
     Assert.Throws <ArgumentNullException>(() => ColorModelConverter.RGBtoHSL(null));
 }
コード例 #14
0
        public void RGBtoHSL_CorrectCalculation(RGB rgb, HSL expected)
        {
            HSL result = ColorModelConverter.RGBtoHSL(rgb);

            Assert.That(result, Is.EqualTo(expected));
        }
コード例 #15
0
 /// <summary>Creates an instance for the given language.</summary>
 /// <param name="culture">The culture.</param>
 /// <returns>A repository.</returns>
 public IColorRepository ForCulture(CultureInfo culture)
 {
     var colorConverter = new ColorConverter();
     var colorModelConverter = new ColorModelConverter(colorConverter);
     var colorPaletteConverter = new ColorPaletteConverter(colorConverter, colorModelConverter);
     var colorPaletteCollectionConverter = new ColorPaletteCollectionConverter(colorPaletteConverter);
     IColorRepository repository = new ColorRepository(this.serviceClient, colorPaletteCollectionConverter);
     repository.Culture = culture;
     return repository;
 }