如何增大二维码种的数据存储

本文探讨在项目中如何通过数据压缩技术增加二维码的数据存储能力。针对需求,作者尝试了Huffman编码但效果不佳,随后采用gzip+base64的组合,发现此方法在压缩效率上表现更优。在工程中引入libz.dylib以支持gzip压缩,并提供了相关的代码实现。
摘要由CSDN通过智能技术生成

最近在做项目,需求就是要传尽量多的数据,属于一个调研,估计后期会加入到项目里面,二维码其实不推荐放入大量数据,但是需求嘛,拿钱干活,可能后期还会优化,因为目前的画扫描的效率不高,主要直接用的原生的开源库zxing感觉效率不高。

一开始,从数据源下手,进行数据源压缩,首先尝试了hufman编码,huffman主要是一些开源的算法,但是实现从建树到压缩,其实有很大区别,文件我直接上传了,有兴趣的可以看一下:

http://download.csdn.net/detail/shidongdong2012/7354863

我发现这种压缩效率并不高,接着我采用了gzip+base64的组合方式,发现效果比较号:

首先在因为gzip压缩要用到zlib,所以我们要在工程里面加libz.dylib,

然后附上实现gzip的压缩实现:

h文件

#import <Foundation/Foundation.h>


@interface NSData (GZIP)

- (NSData *)gzippedDataWithCompressionLevel:(float)level;
- (NSData *)gzippedData;
- (NSData *)gunzippedData;

@end

- (NSData *)gzippedDataWithCompressionLevel:(float)level
{
    if ([self length])
    {
        z_stream stream;
  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值