我正在寻找 C# 中的 LZW 压缩算法,它接受一个“字符串”并返回一个字符串。我已经用谷歌搜索了几个小时,我发现所有的东西都使用 MemoryStream、BinaryWriters 等。
我只想能够做类似的事情:
string _data = "12345";
string _result = CompressToLZW(_data);
然后通过 Ajax 将该字符串传递给浏览器。我已经有了 javascript 的 LZW 解压算法 (http://rosettacode.org/wiki/LZW_compression#JavaScript)
谢谢。-
更新:
这是我现在使用的代码http://paste.lisp.org/display/12198
string _data = "12345_12345_12345_12345";
byte[] byteArray = Encoding.ASCII.GetBytes(_data);
MemoryStream _st = new MemoryStream(byteArray);
StreamReader _sr = new StreamReader(_st);
MemoryStream streamoutput = new MemoryStream();
BinaryWriter _output= new BinaryWriter(streamoutput);
LZW.Compress(_sr, _output);
string _res = (new StreamReader(_output.BaseStream)).ReadToEnd();
return _res;
更新 2 我在 C# 中找到了可以在http://code.google.com/p/sharp-lzw/source/browse/ 处工作的源代码。