deflate(Z, Data, Flush) -> Compressed
類型:
Z = zstream()
Data = iodata()
Flush = zflush()
Compressed = iolist()
壓縮盡可能多的數據,並在輸入緩衝區變空時停止。它可能會引入一些輸出延遲(讀取輸入而不產生任何輸出),除非強製刷新。
如果 Flush
設置為 sync
,則所有掛起的輸出都將刷新到輸出緩衝區,並且輸出在字節邊界上對齊,以便解壓縮器可以獲得迄今為止可用的所有輸入數據。刷新會降低某些壓縮算法的壓縮性能;因此,僅在必要時使用它。
如果 Flush
設置為 full
,則與 sync
一樣刷新所有輸出,並且重置壓縮狀態,以便如果先前的壓縮數據已損壞或需要隨機訪問,則可以從此時重新開始解壓縮。過於頻繁地使用 full
會嚴重降低壓縮效果。
如果Flush
被設定為finish
,處理掛起的輸入,刷新掛起的輸出,並且deflate/3
返回。之後流上唯一可能的操作是deflateReset/1
或者deflateEnd/1
.
Flush
可以設置為finish
之後立馬deflateInit
如果所有壓縮都是一步完成的。
例子:
zlib:deflateInit(Z),
B1 = zlib:deflate(Z,Data),
B2 = zlib:deflate(Z,<< >>,finish),
zlib:deflateEnd(Z),
list_to_binary([B1,B2])
相關用法
- erlang delete用法及代碼示例
- erlang decode_packet(Type, Bin, Options)用法及代碼示例
- erlang delete_element(Index, Tuple1)用法及代碼示例
- erlang demonitor(MonitorRef, OptionList)用法及代碼示例
- erlang delete(Item, Q1)用法及代碼示例
- erlang delete_r(Item, Q1)用法及代碼示例
- erlang delete_with(Pred, Q1)用法及代碼示例
- erlang delete_with_r(Pred, Q1)用法及代碼示例
- erlang decode_unsigned(Subject, Endianness)用法及代碼示例
- erlang decode_hex(Bin)用法及代碼示例
- erlang droplast用法及代碼示例
- erlang duplicate用法及代碼示例
- erlang date用法及代碼示例
- erlang dirname(Filename)用法及代碼示例
- erlang date()用法及代碼示例
- erlang drop(Q1 :: queue(Item))用法及代碼示例
- erlang drop_r(Q1 :: queue(Item))用法及代碼示例
- erlang daeh(Q :: queue(Item))用法及代碼示例
- erlang domain(LogEvent, Extra)用法及代碼示例
- erlang duplicate(N, Elem)用法及代碼示例
- erlang domain(BinRel)用法及代碼示例
- erlang drestriction(BinRel1, Set)用法及代碼示例
- erlang drestriction(SetFun, Set1, Set2)用法及代碼示例
- erlang dh_gex_group(MinSize, SuggestedSize, MaxSize, Groups)用法及代碼示例
- erlang dissect_query(QueryString)用法及代碼示例
注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 deflate(Z, Data, Flush) -> Compressed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。