} // 'YGP' public override ImageMetaData ReadMetaData(Stream stream) { stream.Position = 4; using (var reader = new ArcView.Reader(stream)) { int mask_pos = reader.ReadUInt16(); // 04 byte type = reader.ReadByte(); // 06 if (type != 1 && type != 2) { return(null); } var info = new YgpMetaData { Type = type, BPP = 32 }; info.Flags = reader.ReadByte(); // 07 int header_size = reader.ReadInt32(); // 08 stream.Position = header_size; info.DataSize = reader.ReadInt32(); // XX+00 info.Width = reader.ReadUInt16(); // XX+04 info.Height = reader.ReadUInt16(); // XX+06 info.DataOffset = header_size + 8; if (0 != (info.Flags & 4)) { stream.Position = 0x14; info.OffsetX = reader.ReadInt16(); info.OffsetY = reader.ReadInt16(); } return(info); } }
public override ImageMetaData ReadMetaData(Stream stream) { stream.Position = 4; using (var reader = new ArcView.Reader (stream)) { int mask_pos = reader.ReadUInt16(); // 04 byte type = reader.ReadByte(); // 06 if (type != 1 && type != 2) return null; var info = new YgpMetaData { Type = type, BPP = 32 }; info.Flags = reader.ReadByte(); // 07 int header_size = reader.ReadInt32(); // 08 stream.Position = header_size; info.DataSize = reader.ReadInt32(); // XX+00 info.Width = reader.ReadUInt16(); // XX+04 info.Height = reader.ReadUInt16(); // XX+06 info.DataOffset = header_size+8; if (0 != (info.Flags & 4)) { stream.Position = 0x14; info.OffsetX = reader.ReadInt16(); info.OffsetY = reader.ReadInt16(); } return info; } }