Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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;
            }
        }