public static byte[] Decompress(byte[] data, CompreeAlgorithm method = CompreeAlgorithm.Deflate) { MemoryStream input = new MemoryStream(data); MemoryStream output = new MemoryStream(); switch (method) { case CompreeAlgorithm.Deflate: { using (DeflateStream dstream = new DeflateStream(input, CompressionMode.Decompress)) { dstream.CopyTo(output); } } break; case CompreeAlgorithm.Zstd: { using (var decompressor = new Decompressor()) { return(decompressor.Unwrap(data)); } } } return(output.ToArray()); }
public static byte[] Compress(byte[] data, CompreeAlgorithm method = CompreeAlgorithm.Deflate, CompressionLevel level = CompressionLevel.Optimal) { MemoryStream output = new MemoryStream(); switch (method) { case CompreeAlgorithm.Deflate: { using (DeflateStream dstream = new DeflateStream(output, level)) { dstream.Write(data, 0, data.Length); } } break; case CompreeAlgorithm.Zstd: { var opt = new CompressionOptions(CompressionOptions.DefaultCompressionLevel); using (var compressor = new Compressor(opt)) { return(compressor.Wrap(data)); } } } return(output.ToArray()); }