ImageMagick.HexColor.ParseQ8 C# (CSharp) Метод

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

private static ParseQ8 ( string value ) : IEnumerable
value string
Результат IEnumerable
    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));
    }