我有一个关于使用 zlib 库压缩数据的问题。我想设置zlib(即deflateInit函数),使压缩数据是二进制等于命令生成的数据:gzip -9。这可能吗?先感谢您
问问题
5927 次
2 回答
9
windowsBits 参数的默认值为 15。
添加 16 将是 31。
15 | 16 返回 31。
z_stream strm;
unsigned char* in = DATA TO COMPRESS;
strm.zalloc = Z_NULL;
strm.zfree = Z_NULL;
strm.opaque = Z_NULL;
strm.next_in = in;
int windowsBits = 15;
int GZIP_ENCODING = 16;
deflateInit2 (&strm, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
windowsBits | GZIP_ENCODING,
8,
Z_DEFAULT_STRATEGY));
于 2014-03-05T14:58:34.510 回答
3
您无法获得与 gzip 完全相同的输出。但是,您可以获得与 gzip 兼容的输出,以便 gzip 能够解压缩它。你需要使用deflateInit2()
.
于 2012-12-07T15:55:04.603 回答