public string Read(byte[] data, int offset, int length) { Reset(offset); while (_Index < offset + length) { short selector = ByteConverter.ToShort(data, ref _Index); switch (selector) { case 0: case 3: SetKnotCount(data); break; case 1: case 2: case 4: case 5: AddPath(data); break; case 6: case 7: case 8: default: _Index += 24; break; } } return(_Path.ToString()); }
private string Read(byte[] data, int length) { while (_index < _offset + length) { short selector = ByteConverter.ToShort(data, ref _index); switch (selector) { case 0: case 3: SetKnotCount(data); break; case 1: case 2: case 4: case 5: AddPath(data); break; case 6: case 7: case 8: default: _index += 24; break; } } return(_path.ToString()); }
private void SetKnotCount(byte[] data) { if (_KnotCount != 0) { _Index += 24; return; } _KnotCount = ByteConverter.ToShort(data, ref _Index); _Index += 22; }
private void Initialize() { if (_values != null) { return; } _values = new Collection <IIptcValue>(); var data = GetData(); if (data == null || data[0] != 0x1c) { return; } int i = 0; while (i + 4 < data.Length) { if (data[i++] != 0x1c) { continue; } var tag = IptcTag.Unknown; if (data[i++] == 0x02) { tag = EnumHelper.Parse(data[i++], IptcTag.Unknown); } else { i++; } var count = ByteConverter.ToShort(data, ref i); if (tag != IptcTag.Unknown) { var value = new byte[count]; if ((count > 0) && (i + count <= data.Length)) { Buffer.BlockCopy(data, i, value, 0, count); } _values.Add(new IptcValue(tag, value)); } i += count; } }
private void Initialize() { if (_values != null) { return; } _values = new Collection <IIptcValue>(); var data = GetData(); if (data == null || data[0] != 0x1c) { return; } int i = 0; while (i + 4 < data.Length) { if (data[i++] != 28) { continue; } i++; var tag = (IptcTag)data[i++]; var count = ByteConverter.ToShort(data, ref i); var value = new byte[count]; if ((count > 0) && (i + count <= data.Length)) { Buffer.BlockCopy(data, i, value, 0, count); } _values.Add(new IptcValue(tag, value)); i += count; } }
private void Initialize() { if (_Values != null) { return; } _Values = new Collection <IptcValue>(); if (Data == null || Data[0] != 0x1c) { return; } int i = 0; while (i + 4 < Data.Length) { if (Data[i++] != 28) { continue; } i++; IptcTag tag = EnumHelper.Parse((int)Data[i++], IptcTag.Unknown); short count = ByteConverter.ToShort(Data, ref i); byte[] data = new byte[count]; if ((count > 0) && (i + count <= Data.Length)) { Buffer.BlockCopy(Data, i, data, 0, count); } _Values.Add(new IptcValue(tag, data)); i += count; } }
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.ToUInt(Data, ref i); if (i + length > Data.Length) { return; } if (length < 0) { return; } if (length != 0) { if (isClipPath) { ClipPath clipPath = CreateClipPath(name, i, length); if (clipPath != null) { _clipPaths.Add(clipPath); } } byte[] data = new byte[length]; Array.Copy(Data, i, data, 0, length); _values.Add(new EightBimValue(id, data)); } i += length; } }
private void Initialize() { if (_clipPaths != null) { return; } _clipPaths = new Collection <IClipPath>(); _values = new Collection <IEightBimValue>(); var data = GetData(); 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; } var id = ByteConverter.ToShort(data, ref i); var 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.ToUInt(data, ref i); if (i + length > data.Length) { return; } if (length < 0) { return; } if (length != 0) { if (isClipPath) { var clipPath = CreateClipPath(name, i, length); if (clipPath != null) { _clipPaths.Add(clipPath); } } var value = new byte[length]; Array.Copy(data, i, value, 0, length); _values.Add(new EightBimValue(id, value)); } i += length; } }