public void read(System.IO.BinaryReader reader) { tag = reader.ReadUInt16(); int typeID = reader.ReadUInt16(); int count = reader.ReadInt32(); TiffData.TIFFdataType tifType; if (Enum.IsDefined(typeof(TiffData.TIFFdataType), typeID)) { tifType = (TiffData.TIFFdataType)typeID; } else { tifType = TiffData.TIFFdataType.Undefined; } data = new TiffData(tifType, count); if (data.dataLength() <= 4) { readData(reader); offset = -1; } else { offset = reader.ReadUInt32(); } }
public void write(System.IO.BinaryWriter writer, ref uint currPos) { writer.Write(Convert.ToUInt16(tag)); writer.Write(Convert.ToUInt16(data.TiffType)); writer.Write(data.Count); uint length = (uint)(data.dataLength()); if (length <= 4) { data.write(writer); for (int i = 0; i < 4 - (int)length; i++) { writer.Write((byte)0); } } else { writer.Write(currPos); currPos += length; } }