Ejemplo n.º 1
0
        }                                                               // '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);
            }
        }
Ejemplo n.º 2
0
 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;
     }
 }