2012-04-15 36 views

回答

44

compress()用於在一個單一的呼叫來壓縮數據,並總是壓縮到ZLIB格式,它是與一個兩字節的標題和一個四字節的校驗值拖車放氣數據。本身使用compress()

deflate()用於以時間來壓縮數據的塊,和/或壓縮到其他格式,如gzip的 -wrapped或,並與其它選項,如存儲器級和壓縮策略。

如果您有一次可用的所有數據和足夠的內存來保存結果,並且您希望使用默認的壓縮格式,內存使用情況和策略,則可以使用compress()。否則,您將使用deflate()

deflate()本身不使用。您需要使用deflateInit()deflateInit2()來初始化deflate()所使用的z_stream結構。然後,您可以撥打deflate()一次或多次採集數據進行壓縮並提供結果。最後,調用deflateEnd()來釋放結構中使用的內存資源。您可以閱讀zlib.hhttp://zlib.net/zlib_how.html的文檔獲取更多信息。

+21

馬克阿德勒[絕對是這一個權威](http://en.wikipedia.org/wiki/Mark_Adler)。 – Xenon 2012-04-16 03:52:53

+0

謝謝。我讀了一些,但起初並不完全理解它。這只是太多的信息,但我已經走了,重讀了它。 – mma1480 2012-04-16 07:24:24

+3

很好...現在我知道它爲什麼叫做adler-32 – 2012-11-27 14:36:59

相關問題