Ejemplo n.º 1
0
        void PrepareHeader(KgdMetaData info)
        {
            Buffer.BlockCopy(PngFormat.HeaderBytes, 0, m_buffer, 0, 8);
            BigEndian.Pack(0x0D, m_buffer, 8);
            BigEndian.Pack(0x49484452, m_buffer, 0x0C);  // 'IHDR'
            BigEndian.Pack(info.Width, m_buffer, 0x10);
            BigEndian.Pack(info.Height, m_buffer, 0x14);
            m_buffer[0x18] = info.BitsPerPlane;
            m_buffer[0x19] = info.ColorType;
            uint checksum = Adler32.Compute(m_buffer, 0x10, 0x0D);

            BigEndian.Pack(checksum, m_buffer, 0x1D);
            m_buffer_size = 0x21;
        }
Ejemplo n.º 2
0
 public PngRestoreStream(IBinaryStream input, KgdMetaData info) : base(input.AsStream, true)
 {
     m_input = input;
     PrepareHeader(info);
     m_input.Position = 0x19;
 }