/// <summary>
        /// Gets formatted string representing the current color value.
        /// </summary>
        /// <param name="format">The color string format to use.</param>
        /// <returns>The formatted string representing the current color value.</returns>
        public string ToString(ColorStringFormat format)
        {
            float r, g, b;

            switch (format)
            {
            case ColorStringFormat.HSLAHexOpt:
                return(HsbColor32.ToHexidecimalString(_hue, _saturation, _brightness, _alpha, true));

            case ColorStringFormat.HSLAPercent:
                return(HsbColorF.ToPercentParameterString(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), _alpha.ToPercentage()));

            case ColorStringFormat.HSLAValues:
                return(HsbColor32.ToValueParameterString(_hue, _saturation, _brightness, _alpha));

            case ColorStringFormat.HSLHex:
                return(HsbColor32.ToHexidecimalString(_hue, _saturation, _brightness, false));

            case ColorStringFormat.HSLHexOpt:
                return(HsbColor32.ToHexidecimalString(_hue, _saturation, _brightness, true));

            case ColorStringFormat.HSLPercent:
                return(HsbColorF.ToPercentParameterString(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage()));

            case ColorStringFormat.HSLValues:
                return(HsbColor32.ToValueParameterString(_hue, _saturation, _brightness));

            case ColorStringFormat.RGBAHex:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColor32.ToHexidecimalString(r.FromPercentage(), g.FromPercentage(), b.FromPercentage(), _alpha, false));

            case ColorStringFormat.RGBAHexOpt:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColor32.ToHexidecimalString(r.FromPercentage(), g.FromPercentage(), b.FromPercentage(), _alpha, true));

            case ColorStringFormat.RGBAPercent:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColorF.ToPercentParameterString(r, g, b, _alpha.ToPercentage()));

            case ColorStringFormat.RGBAValues:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColor32.ToValueParameterString(r.FromPercentage(), g.FromPercentage(), b.FromPercentage(), _alpha));

            case ColorStringFormat.RGBHex:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColor32.ToHexidecimalString(r.FromPercentage(), g.FromPercentage(), b.FromPercentage(), false));

            case ColorStringFormat.RGBHexOpt:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColor32.ToHexidecimalString(r.FromPercentage(), g.FromPercentage(), b.FromPercentage(), true));

            case ColorStringFormat.RGBPercent:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColorF.ToPercentParameterString(r, g, b));

            case ColorStringFormat.RGBValues:
                ColorExtensions.HSBtoRGB(_hue.ToDegrees(), _saturation.ToPercentage(), _brightness.ToPercentage(), out r, out g, out b);
                return(RgbColor32.ToValueParameterString(r.FromPercentage(), g.FromPercentage(), b.FromPercentage()));
            }
            return(_value.ToString("X8"));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Gets formatted string representing the current color value.
        /// </summary>
        /// <param name="format">The color string format to use.</param>
        /// <returns>The formatted string representing the current color value.</returns>
        public string ToString(ColorStringFormat format)
        {
            float h, s, b;

            switch (format)
            {
            case ColorStringFormat.HSLAHex:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColor32.ToHexidecimalString(h.FromDegrees(), s.FromPercentage(), b.FromPercentage(), _alpha, false));

            case ColorStringFormat.HSLAHexOpt:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColor32.ToHexidecimalString(h.FromDegrees(), s.FromPercentage(), b.FromPercentage(), _alpha, true));

            case ColorStringFormat.HSLAPercent:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColorF.ToPercentParameterString(h, s, b, _alpha.ToPercentage()));

            case ColorStringFormat.HSLAValues:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColor32.ToValueParameterString(h.FromDegrees(), s.FromPercentage(), b.FromPercentage(), _alpha));

            case ColorStringFormat.HSLHex:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColor32.ToHexidecimalString(h.FromDegrees(), s.FromPercentage(), b.FromPercentage(), false));

            case ColorStringFormat.HSLHexOpt:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColor32.ToHexidecimalString(h.FromDegrees(), s.FromPercentage(), b.FromPercentage(), true));

            case ColorStringFormat.HSLPercent:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColorF.ToPercentParameterString(h, s, b));

            case ColorStringFormat.HSLValues:
                ColorExtensions.RGBtoHSB(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), out h, out s, out b);
                return(HsbColor32.ToValueParameterString(h.FromDegrees(), s.FromPercentage(), b.FromPercentage()));

            case ColorStringFormat.RGBAHexOpt:
                return(ToHexidecimalString(_red, _green, _blue, _alpha, true));

            case ColorStringFormat.RGBAPercent:
                return(RgbColorF.ToPercentParameterString(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage(), _alpha.ToPercentage()));

            case ColorStringFormat.RGBAValues:
                return(ToValueParameterString(_red, _green, _blue, _alpha));

            case ColorStringFormat.RGBHex:
                return(ToHexidecimalString(_red, _green, _blue, false));

            case ColorStringFormat.RGBHexOpt:
                return(ToHexidecimalString(_red, _green, _blue, true));

            case ColorStringFormat.RGBPercent:
                return(RgbColorF.ToPercentParameterString(_red.ToPercentage(), _green.ToPercentage(), _blue.ToPercentage()));

            case ColorStringFormat.RGBValues:
                return(ToValueParameterString(_red, _green, _blue));
            }
            return(_value.ToString("X8"));
        }