6

这是完整的情况:我正在使用.tmx平铺文件的地图阅读器。大多数情况下,图块保存在一个base64字符串中,其中包含一个由 . 压缩的字节数组gzip。现在我可以读取压缩字节数组,但我不知道如何解压缩它。我阅读了一些关于zliband的文档boost,但两者都是关于文件流并且非常复杂......

我对数据压缩领域非常陌生,所以如果有人知道某种解决方案或一些有用的文档,我会非常感激。

4

1 回答 1

9
#include <fstream>
#include <iostream>
#include <boost/iostreams/filtering_streambuf.hpp>
#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/gzip.hpp>

int main() 
{
    using namespace std;

    ifstream file("hello.gz", ios_base::in | ios_base::binary);
    filtering_streambuf<input> in;
    in.push(gzip_decompressor());
    in.push(file);
    boost::iostreams::copy(in, cout);
}

在查看上述来自http://www.boost.org/doc/libs/1_36_0/libs/iostreams/doc/classes/gzip.html的示例时,我不确定什么是困难或复杂的。解压非常简单。在解压缩之前,请确保对 base64 进行解码。(我如何在 C 中进行 base64 编码(解码)?应该对您有所帮助)

于 2011-05-08T20:15:12.793 回答