Convert() статический приватный Метод

static private Convert ( byte value ) : Byte
value byte
Результат System.Byte
Пример #1
0
        private static bool TryParseQ8(string value, List <QuantumType> channels)
        {
            int size = 0;

            if (value.Length == 4 || value.Length == 5)
            {
                size = 1;
            }
            else if (value.Length == 3 || value.Length == 7 || value.Length == 9)
            {
                size = 2;
            }
            else
            {
                return(false);
            }

            for (int i = 1; i < value.Length; i += size)
            {
                if (!TryParseHex(value, i, size, out ushort channel))
                {
                    return(false);
                }

                channels.Add(Quantum.Convert((byte)channel));
            }

            return(true);
        }
Пример #2
0
        private static QuantumType ParseHexQ8(string color, int offset)
        {
            ushort result = 0;
            ushort k      = 1;

            int i = 3;

            while (i >= 0)
            {
                char c = color[offset + i];

                if (c >= '0' && c <= '9')
                {
                    result += (ushort)(k * (c - '0'));
                }
                else if (c >= 'a' && c <= 'f')
                {
                    result += (ushort)(k * (c - 'a' + '\n'));
                }
                else if (c >= 'A' && c <= 'F')
                {
                    result += (ushort)(k * (c - 'A' + '\n'));
                }
                else
                {
                    throw new ArgumentException("Invalid character: " + c + ".", nameof(color));
                }

                i--;
                k = (ushort)(k * 16);
            }

            return(Quantum.Convert(result));
        }
Пример #3
0
 private void Initialize(byte red, byte green, byte blue, byte alpha)
 {
     R = Quantum.Convert(red);
     G = Quantum.Convert(green);
     B = Quantum.Convert(blue);
     A = Quantum.Convert(alpha);
     K = 0;
 }
Пример #4
0
 /// <summary>
 /// Initializes the color with the specified bytes.
 /// </summary>
 /// <param name="red">Red component value of this color.</param>
 /// <param name="green">Green component value of this color.</param>
 /// <param name="blue">Blue component value of this color.</param>
 /// <param name="alpha">Alpha component value of this color.</param>
 public void SetFromBytes(byte red, byte green, byte blue, byte alpha)
 {
     R      = Quantum.Convert(red);
     G      = Quantum.Convert(green);
     B      = Quantum.Convert(blue);
     A      = Quantum.Convert(alpha);
     K      = 0;
     IsCmyk = false;
 }
Пример #5
0
        private static IEnumerable <QuantumType> ParseQ8(string value)
        {
            byte red;
            byte green;
            byte blue;
            byte alpha;

            if (value.Length == 3)
            {
                yield return(Quantum.Convert((byte)ParseHex(value, 1, 2)));
            }
            else if (value.Length == 4 || value.Length == 5)
            {
                red  = (byte)ParseHex(value, 1, 1);
                red += (byte)(red * 16);
                yield return(Quantum.Convert(red));

                green  = (byte)ParseHex(value, 2, 1);
                green += (byte)(green * 16);
                yield return(Quantum.Convert(green));

                blue  = (byte)ParseHex(value, 3, 1);
                blue += (byte)(blue * 16);
                yield return(Quantum.Convert(blue));

                if (value.Length == 5)
                {
                    alpha  = (byte)ParseHex(value, 4, 1);
                    alpha += (byte)(alpha * 16);
                    yield return(Quantum.Convert(alpha));
                }
            }
            else if (value.Length == 7 || value.Length == 9)
            {
                red = (byte)ParseHex(value, 1, 2);
                yield return(Quantum.Convert(red));

                green = (byte)ParseHex(value, 3, 2);
                yield return(Quantum.Convert(green));

                blue = (byte)ParseHex(value, 5, 2);
                yield return(Quantum.Convert(blue));

                if (value.Length == 9)
                {
                    alpha = (byte)ParseHex(value, 7, 2);
                    yield return(Quantum.Convert(alpha));
                }
            }
            else
            {
                throw new ArgumentException("Invalid hex value.", nameof(value));
            }
        }
Пример #6
0
        private void ParseQ8HexColor(string color)
        {
            byte red;
            byte green;
            byte blue;
            byte alpha = 255;

            if (color.Length == 3)
            {
                red = green = blue = (byte)ParseHex(color, 1, 2);
            }
            else if (color.Length == 4 || color.Length == 5)
            {
                red    = (byte)ParseHex(color, 1, 1);
                red   += (byte)(red * 16);
                green  = (byte)ParseHex(color, 2, 1);
                green += (byte)(green * 16);
                blue   = (byte)ParseHex(color, 3, 1);
                blue  += (byte)(blue * 16);

                if (color.Length == 5)
                {
                    alpha  = (byte)ParseHex(color, 4, 1);
                    alpha += (byte)(alpha * 16);
                }
            }
            else if (color.Length == 7 || color.Length == 9)
            {
                red   = (byte)ParseHex(color, 1, 2);
                green = (byte)ParseHex(color, 3, 2);
                blue  = (byte)ParseHex(color, 5, 2);

                if (color.Length == 9)
                {
                    alpha = (byte)ParseHex(color, 7, 2);
                }
            }
            else
            {
                throw new ArgumentException("Invalid hex value.");
            }

            Initialize(Quantum.Convert(red), Quantum.Convert(green), Quantum.Convert(blue), Quantum.Convert(alpha));
        }
Пример #7
0
        private static bool TryParseQ16(string value, List <QuantumType> channels)
        {
            if (value.Length != 13 && value.Length != 17)
            {
                return(false);
            }

            for (int i = 1; i < value.Length; i += 4)
            {
                if (!TryParseHex(value, i, 4, out ushort channel))
                {
                    return(false);
                }

                channels.Add(Quantum.Convert(channel));
            }

            return(true);
        }