Qt之调用zlib压缩与解压缩功能
来源:互联网 发布:python pil和opencv 编辑:程序博客网 时间:2024/06/04 19:13
Zlib是一种免费且通用的压缩库,由于Zlib压缩效果比LZW好,而且解压缩速度快,更重要的是商业软件中使用Zlib不需要缴纳版权费,所以很多游戏都使用Zlib压缩资源文件。
Zlib是由Jean-loup Gailly 和 Mark Adler共同编写完成的压缩库,Zlib是开源的,而且从Zlib的官方网站http://www.zlib.net/上可以下载到不同平台和编译器下的源代码实现。
Zlib联合使用LZ77算法和Huffman哈夫曼树来实现数据压缩和数据解压。
zlib源码:http://download.csdn.net/detail/huangyuancao/7760901
void MainWindow::on_pushButton_clicked(){ FILE* File_src; FILE* File_compress; FILE* File_uncompress; unsigned long len_src; unsigned long len_compress; unsigned long len_uncompress = MaxBufferSize; unsigned char *buffer_src = new unsigned char[MaxBufferSize]; unsigned char *buffer_compress = new unsigned char[MaxBufferSize]; unsigned char *buffer_uncompress = new unsigned char[MaxBufferSize]; File_src = fopen("src.txt","r"); File_compress = fopen("compress.txt","w"); File_uncompress = fopen("uncompress.txt","w"); //compress len_src = fread(buffer_src,sizeof(char),MaxBufferSize-1,File_src); compress(buffer_compress,&len_compress,buffer_src,len_src); fwrite(buffer_compress,sizeof(char),len_compress,File_compress); qDebug() << "normal zlib:" ; qDebug() << "src:\n" << buffer_src << ",length:" << len_src ; qDebug() << "compress:\n" << buffer_compress << ",length:" << len_compress ; //uncompress uncompress(buffer_uncompress,&len_uncompress,buffer_compress,len_compress); fwrite(buffer_uncompress,sizeof(char),len_uncompress,File_uncompress); qDebug() << "uncompress:\n" << buffer_uncompress << ",length:" << len_uncompress; fclose(File_src); fclose(File_compress); fclose(File_uncompress);}
void MainWindow::on_pushButton_2_clicked(){ QByteArray src; src.append("中华人民共和国,china mobile,123456 "); unsigned long len_compress; unsigned long len_uncompress; unsigned char *buffer_compress = new unsigned char[MaxBufferSize]; unsigned char *buffer_uncompress = new unsigned char[MaxBufferSize]; compress(buffer_compress,&len_compress,(Bytef*)src.data(), src.length()); uncompress(buffer_uncompress,&len_uncompress,buffer_compress,len_compress); qDebug() << "qt zlib:" ; qDebug() << "src:\n" << src.data() << ",length:" << src.size() ; qDebug() << "compress:\n" << buffer_compress << ",length:" << len_compress ; qDebug() << "uncompress:\n" << buffer_uncompress << ",length:" << len_uncompress ;}
执行效果:
源码链接:http://download.csdn.net/download/caoshangpa/10117689
原文链接:http://www.cnblogs.com/newstart/p/3914888.html
阅读全文
1 0
- qt 调用zlib压缩与解压缩功能
- Qt之调用zlib压缩与解压缩功能
- c++ zlib(qt)压缩与解压缩
- zlib minizip 压缩与解压缩
- 利用zlib,lzo压缩与解压缩字符
- 【转】C++ ZLib压缩与解压缩
- zlib压缩解压缩文件
- android ZLib压缩/解压缩
- QT 下怎么对资源进行压缩解压缩?quazip+zlib
- Qt调用zlib压缩解压文件
- Qt调用zlib库文件解压缩zip文件
- ZLib,GZip,Zip压缩与解压缩工具类
- VC使用Zlib对内存流进行压缩与解压缩
- VC使用Zlib对内存流进行压缩与解压缩
- Python3 压缩与解压缩(zlib / gzip / bz2 / lzma / zipfile / tarfile)
- Python3 压缩与解压缩(zlib / gzip / bz2 / lzma / zipfile / tarfile)
- 使用zlib压缩解压缩文件
- java压缩,解压缩zlib文件
- TCP/IP详解卷1:协议(八)【广播和多播,ICMP:Internet组管理协议】
- 当一回诗人,基于TF写古诗
- javascript中数组(Array)对象和字符串(String)对象的常用方法总结
- Tomcat启动问题(debug无法启动,正常可以启动)
- ARM9(nuc972)ISP程序烧录
- Qt之调用zlib压缩与解压缩功能
- 数据结构 第12讲 二叉树的层次遍历
- 知识总结
- iOS 之 侧边栏
- 让浏览器格式化显示JSON数据之chrome jsonView插件安装
- 常见浏览器兼容性问题与解决方案
- 非211计算机保研的那些事
- 算法:单调递增最长子序列
- java 集合总结