c# - 如何在没有流或系统 io 的情况下压缩字节数组

标签 c# .net compression

我正在尝试将图像编码为字节数组并将其发送到服务器。 编码和发送部分工作正常,但我的问题是字节数​​组太大,发送时间太长,所以我认为压缩它会使它运行得更快。但实际问题是我不能使用 system.io 或流。我的目标是 .net 2.0。 谢谢。

最佳答案

using System.IO;
using System.IO.Compression;

代码:

public static byte[] Compress(byte[] data)
{
    MemoryStream output = new MemoryStream();
    using (DeflateStream dstream = new DeflateStream(output, CompressionLevel.Optimal))
    {
        dstream.Write(data, 0, data.Length);
    }
    return output.ToArray();
}

public static byte[] Decompress(byte[] data)
{
    MemoryStream input = new MemoryStream(data);
    MemoryStream output = new MemoryStream();
    using (DeflateStream dstream = new DeflateStream(input, CompressionMode.Decompress))
    {
        dstream.CopyTo(output);
    }
    return output.ToArray();
}

已更新

使用 7zip 库:
http://www.splinter.com.au/compressing-using-the-7zip-lzma-algorithm-in/

// Convert the text into bytes
byte[] DataBytes = ASCIIEncoding.ASCII.GetBytes(OriginalText);

// Compress it
byte[] Compressed = SevenZip.Compression.LZMA.SevenZipHelper.Compress(DataBytes);

// Decompress it
byte[] Decompressed = SevenZip.Compression.LZMA.SevenZipHelper.Decompress(Compressed);

关于c# - 如何在没有流或系统 io 的情况下压缩字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39191950/

相关文章:

c# - 如何在解决方案级别使用 Microsoft.Net.Compilers?

c# - 如何在传输过程中关闭请求流时获取 HTTP 响应

java - 具有更好压缩比的 GZIPInput/OutputStream 替代方案?

java - jar(war)压缩有什么优点?

c# - ASP.NET Core web.config requestFiltering 不覆盖 applicationhost.config

c# - .NET CLR VM 中的逃逸分析

c# - 将一个类的方法分组在一起

c# - Xamarin 中的 SSL 握手失败

c# - 如何获得类型的别名?

python - 是否可以使用 '0' 和 '1' 字符构建霍夫曼算法?