ImageMagick.EightBimProfile.Initialize C# (CSharp) Méthode

Initialize() private méthode

private Initialize ( ) : void
Résultat void
    private void Initialize()
    {
      if (_ClipPaths != null)
        return;

      _ClipPaths = new Collection<ClipPath>();
      _Values = new Collection<EightBimValue>();

      int i = 0;
      while (i < Data.Length)
      {
        if (Data[i++] != '8')
          continue;
        if (Data[i++] != 'B')
          continue;
        if (Data[i++] != 'I')
          continue;
        if (Data[i++] != 'M')
          continue;

        if (i + 7 > Data.Length)
          return;

        short id = ByteConverter.ToShort(Data, ref i);
        bool isClipPath = id > 1999 && id < 2998;

        string name = null;
        int length = Data[i++];
        if (length != 0)
        {
          if (isClipPath && i + length < Data.Length)
            name = Encoding.ASCII.GetString(Data, i, length);

          i += length;
        }

        if ((length & 0x01) == 0)
          i++;

        length = ByteConverter.ToInt(Data, ref i);
        if (i + length > Data.Length)
          return;

        if (length < 0)
          return;

        if (length != 0)
        {
          if (isClipPath)
            _ClipPaths.Add(CreateClipPath(name, i, length));

          byte[] data = new byte[length];
          Array.Copy(Data, i, data, 0, length);
          _Values.Add(new EightBimValue(id, data));
        }

        i += length;
      }
    }