private int WriteHeaders(Collection<int> indexes, byte[] destination, int offset)
{
_DataOffsets = new Collection<int>();
int newOffset = Write(BitConverter.GetBytes((ushort)indexes.Count), destination, offset);
if (indexes.Count == 0)
return newOffset;
foreach (int index in indexes)
{
ExifValue value = _Values[index];
newOffset = Write(BitConverter.GetBytes((ushort)value.Tag), destination, newOffset);
newOffset = Write(BitConverter.GetBytes((ushort)value.DataType), destination, newOffset);
newOffset = Write(BitConverter.GetBytes((uint)value.NumberOfComponents), destination, newOffset);
if (value.Length > 4)
_DataOffsets.Add(newOffset);
else
WriteValue(value, destination, newOffset);
newOffset += 4;
}
return newOffset;
}