zlib:`deflate`和`compress`函数之间的差异

mma*_*480 14 compression zlib deflate

zlib中的函数deflate()compress()函数有什么区别?

我查看了在线示例,其中一些使用了deflate而其他人使用了compress.

我该如何决定使用哪种情况?

Mar*_*ler 58

compress()用于在单个调用中压缩数据,并始终压缩为zlib格式,该格式是使用双字节头和四字节校验值预告片对数据进行压缩. compress()是单独使用的.

deflate()用于一次压缩数据块,和/或压缩到其他格式,如gzip -wrapped或raw,以及其他选项,如内存级别和压缩策略.

你可以使用compress(),如果你拥有所有可用一次的数据和足够的内存来容纳结果所需的默认压缩格式,内存使用情况,以及战略和.否则,你会用deflate().

deflate()本身不使用.您需要使用deflateInit()deflateInit2()初始化所z_stream使用的结构deflate().然后,您调用deflate()一次或多次来接收数据以进行压缩并使结果可用.最后,deflateEnd()调用释放结构中使用的内存资源.您可以阅读zlib.hhttp://zlib.net/zlib_how.html中的文档以获取更多信息.

  • Mark Adler [绝对是这个权威](http://en.wikipedia.org/wiki/Mark_Adler). (25认同)
  • 很棒...现在我知道为什么它被称为adler-32 (5认同)