bar*_*des 5 c++ compression gzip inflate
这是完整的情况:我正在.tmx使用瓷砖的地图阅读器处理文件.大多数时候,tile都保存在一个base64字符串中,该字符串包含一个压缩的字节数组gzip.现在我可以读取压缩字节数组,但我不知道如何解压缩它.我读了一些关于zlib和的文档boost,但两者都是关于文件流而且非常复杂......
我对数据压缩领域很陌生,所以如果有人知道某种解决方案或一些有用的文档,我真的很感兴趣.
#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);
}
Run Code Online (Sandbox Code Playgroud)
在查看http://www.boost.org/doc/libs/1_36_0/libs/iostreams/doc/classes/gzip.html上面的示例时,我不确定什么是困难或复杂的.减压非常简单.在解压缩之前,请确保解码base64.(我如何在C中进行base64编码(解码)?应该对你有所帮助)