public override ImageMetaData ReadMetaData(Stream stream) { using (var input = new ArcView.Reader(stream)) { var info = new PicMetaData(); input.ReadUInt32(); info.PackedSize = input.ReadUInt32(); info.UnpackedSize = input.ReadUInt32(); info.HeaderSize = input.ReadUInt32(); if (info.HeaderSize >= stream.Length || info.PackedSize + info.HeaderSize > stream.Length) { return(null); } input.ReadUInt32(); info.Width = input.ReadUInt32(); info.Height = input.ReadUInt32(); info.BPP = input.ReadInt32(); if (info.HeaderSize >= 0x2C) { input.ReadInt32(); info.OffsetX = input.ReadInt32(); info.OffsetY = input.ReadInt32(); } return(info); } }
public override ImageMetaData ReadMetaData(IBinaryStream file) { file.Position = 4; var info = new PicMetaData(); info.PackedSize = file.ReadUInt32(); info.UnpackedSize = file.ReadUInt32(); info.HeaderSize = file.ReadUInt32(); if (info.HeaderSize >= file.Length || info.PackedSize + info.HeaderSize > file.Length) { return(null); } file.ReadUInt32(); info.Width = file.ReadUInt32(); info.Height = file.ReadUInt32(); info.BPP = file.ReadInt32(); if (info.HeaderSize >= 0x2C) { info.Extra = file.ReadInt32(); info.OffsetX = file.ReadInt32(); info.OffsetY = file.ReadInt32(); } return(info); }
public override ImageMetaData ReadMetaData(Stream stream) { using (var input = new ArcView.Reader (stream)) { var info = new PicMetaData(); input.ReadUInt32(); info.PackedSize = input.ReadUInt32(); info.UnpackedSize = input.ReadUInt32(); info.HeaderSize = input.ReadUInt32(); if (info.HeaderSize >= stream.Length || info.PackedSize + info.HeaderSize > stream.Length) return null; input.ReadUInt32(); info.Width = input.ReadUInt32(); info.Height = input.ReadUInt32(); info.BPP = input.ReadInt32(); if (info.HeaderSize >= 0x2C) { input.ReadInt32(); info.OffsetX = input.ReadInt32(); info.OffsetY = input.ReadInt32(); } return info; } }