public async Task <string> Base64DecompressAsync(string data, Base64CompressionOptions options = null) { var _options = GetOptions(options); var inStream = new MemoryStream(); var bytes = System.Convert.FromBase64String(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(); } var x = outStream.ToArray(); return(Encoding.UTF8.GetString(x)); }
public string Base64Compress(string data, Base64CompressionOptions options = null) { var _options = GetOptions(options); var bytes = Encoding.UTF8.GetBytes(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(); } var x = outStream.ToArray(); return(System.Convert.ToBase64String(x)); }
private ZlibBase64CompressionOptions GetOptions(Base64CompressionOptions options) { var result = (options == null) ? new ZlibBase64CompressionOptions() : (options as ZlibBase64CompressionOptions) ?? new ZlibBase64CompressionOptions(); if (result.CompressBufferSize <= 0) { result.CompressBufferSize = 10420; } if (result.DecompressBufferSize <= 0) { result.DecompressBufferSize = 10420; } return(result); }