Compression zlib:“deflate”和“compress”函数之间的区别

Compression zlib:“deflate”和“compress”函数之间的区别,compression,zlib,deflate,Compression,Zlib,Deflate,zlib中的deflate()和compress()函数之间有什么区别 我浏览了一些在线示例,其中一些使用deflate,而另一些使用compress 我应该如何决定在哪种情况下使用一种方法而不是另一种方法?compress()用于在一次调用中压缩数据,并始终压缩为zlib格式,即使用两字节头和四字节检查值尾来压缩数据压缩() deflate()用于一次将数据块压缩,和/或压缩为其他格式,如gzip-wrapped或raw,以及其他选项,如内存级别和压缩策略 如果您同时拥有所有可用数据和足够的内

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

我浏览了一些在线示例,其中一些使用deflate,而另一些使用compress

我应该如何决定在哪种情况下使用一种方法而不是另一种方法?

compress()
用于在一次调用中压缩数据,并始终压缩为zlib格式,即使用两字节头和四字节检查值尾来压缩数据<代码>压缩()

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

如果您同时拥有所有可用数据和足够的内存来保存结果,并且需要默认的压缩格式、内存使用和策略,则可以使用
compress()
。否则,您将使用
deflate()


deflate()本身不使用。您需要使用
deflateInit()
deflateInit2()
来初始化
z_流
deflate()
使用的结构。然后调用
deflate()
一次或多次以获取要压缩的数据并提供结果。最后,调用
deflateEnd()
,以释放结构中使用的内存资源。您可以阅读zlib.h和at中的文档以了解更多信息。

Mark Adler是。谢谢。我读了一些,但一开始不太明白。这是太多的信息,但我已经去重读了。太好了…现在我知道为什么它被称为阿德勒-32@MarkAdler非常详细的回答。关于Zlib或Gzip,有什么好的来源/书籍可以阅读吗?