Exemplo n.º 1
0
        private void Deserialize(byte[] data, bool ignoreErrors)
        {
            // Deserialize headers
            ByteStream stream  = new ByteStream(data);
            ICONDIR    icondir = new ICONDIR(stream);

            ICONDIRENTRY[] icondirentries = new ICONDIRENTRY[icondir.ImageCount];
            for (int i = 0; i < icondirentries.Length; i++)
            {
                icondirentries[i] = new ICONDIRENTRY(icondir.Type, stream);
            }
            this.Type = icondir.Type;
            // Deserialize images
            foreach (ICONDIRENTRY icondirentry in icondirentries)
            {
                try
                {
                    this.Images.Add(new ICOImage(this.Type, icondirentry, data));
                } catch (Exception e)
                {
                    if (!ignoreErrors)
                    {
                        throw e;
                    }
                }
            }
        }
Exemplo n.º 2
0
        private byte[] SerializeHeaders()
        {
            ByteStream stream = new ByteStream(ICONDIR.SIZE + (ICONDIRENTRY.SIZE * Images.Count));

            stream.Write(ICONDIR.Serialize(this.Type, this.Images.Count));
            foreach (ICOImage image in Images)
            {
                stream.Write(ICONDIRENTRY.Serialize(this.Type, image, this.OffsetOfImage(image)));
            }
            return(stream.Buffer);
        }