Exemple #1
0
        public bool Identify(string filename)
        {
            using (var br = new BinaryReaderX(File.OpenRead(filename)))
            {
                if (br.BaseStream.Length < 4)
                {
                    return(false);
                }
                br.BaseStream.Position = 2;
                var crc16 = br.ReadUInt16();
                if (br.BaseStream.Length < 0x20)
                {
                    return(false);
                }
                if (br.BaseStream.Length < 0x820)
                {
                    return(false);
                }
                br.BaseStream.Position = 0x20;

                try
                {
                    return(Crc16.Create(br.ReadBytes(0x820)) == crc16);
                }
                catch (Exception) { }

                return(false);
            }
        }
Exemple #2
0
        public void X25Compute_Successful()
        {
            var crc  = Crc16.Create(Crc16Formula.X25);
            var hash = BinaryPrimitives.ReadInt16BigEndian(crc.Compute(_check)) & 0xFFFF;

            Assert.AreEqual(_x25Result, hash);
        }
Exemple #3
0
        public void Save(string filename)
        {
            using (var bw = new BinaryWriterX(File.Create(filename)))
            {
                List <byte> result   = new List <byte>();
                var         settings = new ImageSettings
                {
                    Width       = 32,
                    Height      = 32,
                    BitPerIndex = BitLength.Bit4
                };

                var palette  = Common.CreatePalette(bmps[0]);
                var paletteB = Common.EncodePalette(palette, Format.BGR555);
                var tileData = Common.Save(bmps[0], settings, palette);

                result.AddRange(tileData);
                result.AddRange(paletteB);
                result.AddRange(titleInfo);
                var crc16 = Crc16.Create(result.ToArray());
                header.crc16 = (ushort)crc16;

                bw.WriteStruct(header);
                bw.WritePadding(0x1c);
                bw.Write(result.ToArray());
            }
        }
Exemple #4
0
        public void Save(string filename)
        {
            if (bmps[0].Width != 32 || bmps[0].Height != 32)
            {
                throw new System.Exception("Banner needs to be 32x32");
            }

            using (var bw = new BinaryWriterX(File.Create(filename)))
            {
                var tileData    = Kontract.Image.Common.Save(bmps[0], settings);
                var paletteData = format.paletteBytes;

                List <byte> result = new List <byte>();
                result.AddRange(tileData);
                result.AddRange(paletteData);
                result.AddRange(titleInfo);
                var crc16 = Crc16.Create(result.ToArray());
                header.crc16 = (ushort)crc16;

                bw.WriteStruct(header);
                bw.WritePadding(0x1c);
                bw.Write(result.ToArray());
            }
        }
 public XseqStringWriter(Stream stringStream) : base(stringStream)
 {
     _crc16 = Crc16.Create(Crc16Formula.X25);
 }
Exemple #6
0
        private void btnCrcFile_Click(object sender, EventArgs e)
        {
            btnFile_Click(btnCrcFile, new EventArgs());
            Application.DoEvents();
            int times = 1000;

            byte[]       bs = File.ReadAllBytes(txtCrcFile.Text);
            FileStream   fs = File.OpenRead(txtCrcFile.Text);
            MemoryStream ms = new MemoryStream(bs);

            byte[] res = null;
            System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch();
            Crc16 crc16 = Crc16.Create();

            watch.Start();
            for (int i = 0; i < times; i++)
            {
                res = crc16.ComputeHash(bs);
            }
            watch.Stop();
            lab16B.Text = res.ToHexString("") + " > " + (watch.ElapsedTicks / times).ToString();
            Application.DoEvents();
            watch.Restart();
            for (int i = 0; i < times; i++)
            {
                res = crc16.ComputeHash(fs);
            }
            watch.Stop();
            lab16S.Text = res.ToHexString("") + " > " + (watch.ElapsedTicks / times).ToString();
            Application.DoEvents();
            watch.Restart();
            for (int i = 0; i < times; i++)
            {
                res = crc16.ComputeHash(ms);
            }
            watch.Stop();
            lab16M.Text = res.ToHexString("") + " > " + (watch.ElapsedTicks / times).ToString();
            Application.DoEvents();
            Crc32 crc32 = Crc32.Create();

            watch.Start();
            for (int i = 0; i < times; i++)
            {
                res = crc32.ComputeHash(bs);
            }
            watch.Stop();
            lab32B.Text = res.ToHexString("") + " > " + (watch.ElapsedTicks / times).ToString();
            Application.DoEvents();
            watch.Restart();
            for (int i = 0; i < times; i++)
            {
                res = crc32.ComputeHash(fs);
            }
            watch.Stop();
            lab32S.Text = res.ToHexString("") + " > " + (watch.ElapsedTicks / times).ToString();
            Application.DoEvents();
            watch.Restart();
            for (int i = 0; i < times; i++)
            {
                res = crc32.ComputeHash(ms);
            }
            watch.Stop();
            lab32M.Text = res.ToHexString("") + " > " + (watch.ElapsedTicks / times).ToString();
            Application.DoEvents();
        }