zlib使用笔记



zlib使用过程


compress 压缩过程:deflateInit() ->deflate() ->deflateEnd();  uncompress 对应的解压过程 inflateInit() ->  inflate() ->  inflateEnd(); 
compress2 压缩过程:deflateInit2() ->deflate() ->deflateEnd();  对应的解压过程 inflateInit2() ->  inflate() ->  inflateEnd(); 






zlib


关键的函数


(1)int compress (Bytef *dest,   uLongf *destLen, const Bytef *source, uLong sourceLen);


把源缓冲压缩成目的缓冲




(2) int compress2 (Bytef *dest,   uLongf *destLen,const Bytef *source, uLong sourceLen,int level);


功能和上一个函数一样,都一个参数可以指定压缩质量和压缩数度之间的关系(0-9)不敢肯定这个参数的话不用太在意它,明白一个道理就好了: 要想得到高的压缩比就要多花时间


(3) uLong compressBound (uLong sourceLen);


计算需要的缓冲区长度. 假设你在压缩之前就想知道你的产度为 sourcelen 的数据压缩后有多大, 可调用这个函数计算一下,这个函数并不能得到精确的结果,但是它可以保证实际输出长度肯定小于它计算出来的长度


(4) int uncompress (Bytef *dest,   uLongf *destLen,const Bytef *source, uLong sourceLen);


解压缩(看名字就知道了:)




   9、文件概览
    alder32.c:计算数据流的Alder-32校验和,实现alder32()。
    crc32.h和crc32.c:计算数据流的CRC-32,实现crc32()。
    deflate.h和deflate.c:使用默认算法压缩数据,实现deflate函数簇。
    inflate.h和inflate.c:zlib的解压,实现inflate函数簇。
    compress.c:实现内存缓冲区的压缩,包括compress(), compress2(), compressBound()。
    uncompr.c:实现内存缓冲区的解压,包括uncompress()。
    gzguts.h和gzlib.c:读写gzip文件的通用实现,包括gzopen(), gzdopen(), gzbuffer(), gzrewind(), gzseek(), gztell(), gzoffset(), gzeof(), gzerror(), gzclearerr()。
    gzclose.c:实现gzclose()。
    gzread.c:读取gzip文件的实现,包括gzread(), gzgetc(), gzungetc(), gzgets(), gzdirect(), gzclose_r()。
    gzwrite.c:写gzip文件的实现,包括gzwrite(), gzputc(), gzputs(), gzprintf(), gzflush(), gzsetparams(), gzclose_w()。
    infback.c:使用回调接口实现解压,包括inflateBackInit(), inflateBack(), inflateBackEnd()。
    zutil.h和zutil.c:zlib库用到的工具函数。包括zlibVersion(), zlibCompileFlags(), zError()。
    zlib.h:zlib库导出的接口描述文件,应用程序使用zlib库时需要本文件。
    zconf.h:zlib库的编译配置文件,如果编译时需要给所有库函数加上唯一的前缀,或者需要针对不同平台作特殊编译,需要用到本文件。还包括标准 C/C++兼容性定义;编译成DLL时是否使用WINAPI/WINAPIV调用方式;类型定义Byte,uInt, uLong, voidpf等。
    inftrees.h和inftrees.c:为有效的解码生成Huffman树。    
    trees.h和trees.c:使用Huffman编码输出压缩的数据。
    inffixed.h:使用固定编码压缩。
    inffast.h和inffast.c:快速解压数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值