使用zlib库进行数据压缩
http://blog.chinaunix.net/uid-14121858-id-216337.html
使用zlib庫進行數據壓縮
什么是zlib? 官網上有如下說明,自己看吧
zlib is designed to be a free, general-purpose, legally unencumbered -- that is, not covered by any patents -- lossless data-compression library for use on virtually any computer hardware and operating system. The zlib data format is itself portable across platforms.
那么如何使用它來進行數據壓縮呢?
首先,去http://www.zlib.net/下載最新的Release版本,壓縮完解壓縮到一個文件目錄
如果你在Linux下工作,那么編譯前,請先看看目錄下面的MakeFile文件,用文本打開(命令行下less),可以看到里面一些句子:
# To compile and test, type:
#??? ./configure; make test
# The call of configure is optional if you don't have special requirements
# If you wish to build zlib as a shared library, use: ./configure -s
# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type:
?????? #??? make install
?????? # To install in $HOME instead of /usr/local, use:
?????? #??? make install prefix=$HOME
很簡單,要編譯安裝linux下的靜態庫(.a)文件,那么在命令行下輸入 ./configure;make;make install;就可以了,而如果要編譯安裝共享庫(.so,類似windows下面的.dll),那么在命令行下輸入 ./configure -s;make;make install;如果出現的都是Yes,那么就成功了。
在windows下編譯將更簡單,打開目錄下projects\visualc6下的zlib.dsw,用VC6打開,然后在Build菜單下,選擇Configurations,然后選擇你要生成的類型就好了。vs2003/vs2005,下類似。
使用zlib,寫一段簡單的代碼測試看看或直接看zlib包下面的example.c文件。
#include <stdio.h> #include "zlib.h"// 編譯方法: gcc *.c -lz -g -o test int main() {//原始數據const unsigned char strSrc[]="hello world!\n\ aaaaa bbbbb ccccc ddddd aaaaa bbbbb ccccc ddddd中文測試 中文測試\ aaaaa bbbbb ccccc ddddd aaaaa bbbbb ccccc ddddd中文測試 中文測試\ aaaaa bbbbb ccccc ddddd aaaaa bbbbb ccccc ddddd中文測試 中文測試\ aaaaa bbbbb ccccc ddddd aaaaa bbbbb ccccc ddddd中文測試 中文測試"; unsigned char buf[1024]={0},strDst[1024]={0};unsigned long srcLen=sizeof(strSrc),bufLen=sizeof(buf),dstLen=sizeof(strDst);printf("Src string:%s\nLength:%d\n",strSrc,srcLen);//壓縮 compress(buf,&bufLen,strSrc,srcLen);printf("\nAfter Compressed Length:%d\n",bufLen);printf("Compressed String:%s\n",buf);//解壓縮 uncompress(strDst,&dstLen,buf,bufLen);printf("\nAfter UnCompressed Length:%d\n",dstLen);printf("UnCompressed String:%s\n",strDst);return 0; } 編譯這段代碼時要注意,假設你在windows下并使用靜態庫(.lib)連接,那么在vc6下,需要把zlib.lib文件放到你的代碼目錄下,并把zlib.h、zconf.h加入到workspace中,并且設置項目屬性:project-settings-link-category選擇input,然后在library modules中的最后面輸入一個空格和zlib.lib,并在lgnore libraries輸入MSVCRT,原因是這個默認庫和zlib會有沖突!設置好以后直接編譯運行就行了如果你在linux下面,那么把zlib.h、zconf.h、libz.a、test.cpp都放在同一個目錄,然后在命令行輸入以下命令,然后運行./test看看吧
g++ *.cpp libz.a -g -o test
----------------
如果你的zlib庫已經安裝在系統中了,而且是使用C語言寫的測試代碼的話,使用這個命令:gcc *.c -lz -g -o test
看看我這里運行的圖:
轉載于:https://www.cnblogs.com/tfanalysis/articles/4225486.html
總結
以上是生活随笔為你收集整理的使用zlib库进行数据压缩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抽奖算法
- 下一篇: FindBugs工具常见问题