Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 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;
     }
 }