Exemplo n.º 1
0
        public async Task <byte[]> DecompressAsync(byte[] data, ZlibCompressionOptions options)
        {
            var _options = GetOptions(options);
            var inStream = new MemoryStream();
            var bytes    = data;

            await inStream.WriteAsync(bytes, 0, bytes.Length);

            inStream.Position = 0;

            var outStream  = new MemoryStream();
            var outZStream = new zlib.ZOutputStream(outStream);

            try
            {
                await copyStreamAsync(inStream, outZStream, _options.DecompressBufferSize);
            }
            finally
            {
                outZStream.Close();
                outStream.Close();
                inStream.Close();
            }

            return(outStream.ToArray());
        }
Exemplo n.º 2
0
        public byte[] Compress(byte[] data, ZlibCompressionOptions options)
        {
            var _options  = GetOptions(options);
            var bytes     = data;
            var outStream = new MemoryStream();
            var inStream  = new MemoryStream();

            inStream.Write(bytes, 0, bytes.Length);
            inStream.Position = 0;

            var outZStream = new zlib.ZOutputStream(outStream, zlib.zlibConst.Z_DEFAULT_COMPRESSION);

            try
            {
                copyStream(inStream, outZStream, _options.CompressBufferSize);
            }
            finally
            {
                outZStream.Close();
                outStream.Close();
                inStream.Close();
            }

            return(outStream.ToArray());
        }
Exemplo n.º 3
0
        private ZlibCompressionOptions GetOptions(ZlibCompressionOptions options)
        {
            var result = (options == null) ? new ZlibCompressionOptions(): options;

            if (result.CompressBufferSize <= 0)
            {
                result.CompressBufferSize = 10420;
            }

            if (result.DecompressBufferSize <= 0)
            {
                result.DecompressBufferSize = 10420;
            }

            return(result);
        }
Exemplo n.º 4
0
        public async Task <Stream> DecompressAsync(Stream data, ZlibCompressionOptions options)
        {
            var _options   = GetOptions(options);
            var inStream   = data;
            var outStream  = new MemoryStream();
            var outZStream = new zlib.ZOutputStream(outStream);

            try
            {
                await copyStreamAsync(inStream, outZStream, _options.DecompressBufferSize);
            }
            finally
            {
                outZStream.Close();
                outStream.Close();
                inStream.Close();
            }

            return(outStream);
        }
Exemplo n.º 5
0
        public Stream Compress(Stream data, ZlibCompressionOptions options)
        {
            var _options  = GetOptions(options);
            var outStream = new MemoryStream();
            var inStream  = data;

            var outZStream = new zlib.ZOutputStream(outStream, zlib.zlibConst.Z_DEFAULT_COMPRESSION);

            try
            {
                copyStream(inStream, outZStream, _options.CompressBufferSize);
            }
            finally
            {
                outZStream.Close();
                outStream.Close();
                inStream.Close();
            }

            return(outStream);
        }