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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。