zlib(非流壓縮)

2021-10-13 21:49:28 字數 1859 閱讀 6024

$wget 

$tar -xvzf zlib-1.2.3.tar.gz

$cd zlib-1.2.3.tar.gz

$./configure

$make

$sudo make install

安裝好之後,就可以用了

zlibmgr.h 檔案

#ifndef _zlibmgr

#define _zlibmgr

#define maxbuffersize 200000

#include #include #include #include using namespace std;

class czlibmgr

;czlibmgr::czlibmgr()

czlibmgr::~czlibmgr()

bool czlibmgr::compress(const char* pccontentbuf, char* pccompbuf, unsigned long& ulcomplen)

if (strlen(pccontentbuf) == 0)

memset(compr, 0, maxbuffersize);

ulong comprlen;

int err;

ulong len = strlen(pccontentbuf);

comprlen = sizeof(compr) / sizeof(compr[0]);

err = compress(compr, &comprlen, (const bytef*)pccontentbuf, len);

if (err != z_ok)

cout << "orignal size: " << len << " , compressed size : " << comprlen << endl;

memcpy(pccompbuf, compr, comprlen);

ulcomplen = comprlen;

return true;

}bool czlibmgr::uncompress(const char* pccompbuf, char* pcuncompbuf, unsigned long ulcomplen)

if (strlen(pccompbuf) == 0)

memset(uncompr, 0, maxbuffersize);

ulong uncomprlen = maxbuffersize;

int err;

err = uncompress(uncompr, &uncomprlen, (const bytef *)pccompbuf, ulcomplen);

if (err != z_ok)

cout << "compress size: " << ulcomplen << " uncompressed size : " << uncomprlen << endl;

memcpy(pcuncompbuf, uncompr, uncomprlen);

return true;

}czlibmgr g_kzlibmgr;

#endif

使用的例子

#include #include #include #include #include "zlibmgr.h"

using namespace std;

extern czlibmgr g_kzlibmgr;

int main()

採用如下方式進行編譯

g++ -o testzlib testzlib.cpp -lz

大家可以把zlibmgr 直接拿過去用,壓縮效果很好 通常都在一半以上

基於Zlib演算法的流壓縮 字串壓縮原始碼

基於zlib演算法的流壓縮 字串壓縮原始碼 zlib.net官方原始碼demo中提供了壓縮檔案的原始碼演算法。處於專案研發的需要,我需要對記憶體流進行壓縮,由於zlib.net並無相關文字幫助只能自己看原始碼解決。通過對sharpziplib的demo研究,寫出了zlib.net的流壓縮演算法。中間...

Zlib檔案壓縮和解壓

zlib檔案壓縮和解壓 開源 http www.zlib.net zlib使用手冊 http www.zlib.net manual.html zlib wince版 http www.tenik.co.jp adachi wince 在這裡,你可以檢視基於各種作業系統平台的壓縮與解縮 實現。以下是...

msgpack使用zlib壓縮資料

原創 注 靜態庫只需要編譯zlibstat,dll只需要編譯zlibvc 4.建立新的工程包含 msgpack.hpp 和 zlib.h 新增前面的生成的兩個lib 嘗試使用msgpack的壓縮類zbuffer,在msgpack.hpp檔案裡面新增 include msgpack zbuffer.h...