0
点赞
收藏
分享

微信扫一扫

zlib压缩算法


Zlib

简介

  

ZLib的最新版本可以在http://www.zlib.net下载,下载后的源代码包含Windows平台上Visual C++的 BYTE*lpd;工程文件,只需用Visual C++编译该工程即可得到开发所需的zlib.1ib以及z1ib.h文件 zconf.h;

  


   例如 double数据转化成38万的Byte数据经过压缩后得到6.9万Byte数据;而WORD质量码数据10万,压缩后是118的Byte,你没看错,的确是118Byte!!zip的极限压缩也不比这强多少。测试数据73M的复合文档压缩后是9M(其中仅对数据和质量码进行过压缩,其余大概400K未压缩)。


//质量码
  len = m_QualList.size();
  sf.Write(&len,sizeof(int));//压缩前的长度
  //压缩数据uLong comprLen;
  len = len*sizeof(WORD);
  Byte * compr = new Byte[len];
  compress(compr, &comprLen, (Bytef*)&(m_QualList[0]), len);
  len = comprLen;
  sf.Write(&len,sizeof(int));//压缩后的长度
  sf.Write(compr,comprLen*sizeof(Bytef));
  delete []compr; ----------------------------------------------------------------
 uLong uncomprLen;
 m_QualList.clear();
 sf.Read(&len,sizeof(int));//压缩前的长度
 m_QualList.resize(len);
 sf.Read(&len,sizeof(int));//压缩后的长度
 Byte * compr = new Byte[len];
 sf.Read(compr,len*sizeof(Byte));
 uncompress((Bytef*)&(m_QualList[0]), &uncomprLen, compr, len);
 delete []compr;

举报

相关推荐

0 条评论