zlib中的deflate()
和compress()
函數有什麼不同?zlib:'deflate`和`compress`之間的區別函數
我已經通過在線的例子看了一些使用deflate,而其他人使用壓縮。
我應該如何決定使用哪種情況?
zlib中的deflate()
和compress()
函數有什麼不同?zlib:'deflate`和`compress`之間的區別函數
我已經通過在線的例子看了一些使用deflate,而其他人使用壓縮。
我應該如何決定使用哪種情況?
compress()
用於在一個單一的呼叫來壓縮數據,並總是壓縮到ZLIB格式,它是與一個兩字節的標題和一個四字節的校驗值拖車放氣數據。本身使用compress()
。
deflate()
用於以時間來壓縮數據的塊,和/或壓縮到其他格式,如gzip的 -wrapped或生,並與其它選項,如存儲器級和壓縮策略。
如果您有一次可用的所有數據和足夠的內存來保存結果,並且您希望使用默認的壓縮格式,內存使用情況和策略,則可以使用compress()
。否則,您將使用deflate()
。
deflate()本身不使用。您需要使用deflateInit()
或deflateInit2()
來初始化deflate()
所使用的z_stream
結構。然後,您可以撥打deflate()
一次或多次採集數據進行壓縮並提供結果。最後,調用deflateEnd()
來釋放結構中使用的內存資源。您可以閱讀zlib.h和http://zlib.net/zlib_how.html的文檔獲取更多信息。
馬克阿德勒[絕對是這一個權威](http://en.wikipedia.org/wiki/Mark_Adler)。 – Xenon 2012-04-16 03:52:53
謝謝。我讀了一些,但起初並不完全理解它。這只是太多的信息,但我已經走了,重讀了它。 – mma1480 2012-04-16 07:24:24
很好...現在我知道它爲什麼叫做adler-32 – 2012-11-27 14:36:59