Beispiel #1
0
 int HuffmanUnpack(int unpacked_size)
 {
     using (var input = new HuffmanDecompressor())
     {
         input.Initialize(BaseStream);
         return(input.Continue(m_buffer, 0, unpacked_size));
     }
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            System.ConsoleKeyInfo KInfo;
            string baseFolderPath = "..\\..\\..\\..\\";
            string[] files = { baseFolderPath + "file3.bin" };
            string outputFile = baseFolderPath + "output.bin";
            string outputDirectory = baseFolderPath + "output\\";

            HuffmanCompressor comressor = new HuffmanCompressor(4096, files, outputFile);
            comressor.CompressFiles();

            Console.WriteLine();
            Console.WriteLine("Press any key to continue...");
            KInfo = Console.ReadKey(true);

            HuffmanDecompressor decompressor = new HuffmanDecompressor(outputFile, outputDirectory);
            decompressor.DecompressFiles();
        }
Beispiel #3
0
        public Span <Byte> Read(Stream input, Int32 compressedSize, Int32 uncompressedSize, Boolean isCompressed)
        {
            Span <Byte> data = _data.GetSpan(compressedSize);

            input.EnsureRead(data);

            if (!isCompressed)
            {
                if (compressedSize != uncompressedSize)
                {
                    throw new NotSupportedException("if (compressedSize != uncompressedSize)");
                }

                return(data);
            }

            Span <Byte> decompressed = _decompressed.GetSpan(uncompressedSize);

            HuffmanDecompressor.Decompress(data, decompressed);

            return(decompressed);
        }