二维码

来源:互联网 发布:excel的数据分析 编辑:程序博客网 时间:2024/04/30 09:51

这里写图片描述
蓝色地方代表的纠错区域,可以显示纠错级别
黄色代表我们的数据区域,可以显示我们的数据
黑色区域代表用定位,把数据和纠错划定在一范围

二维码存储的数据是字符串。

我们目前开发主要应用在哪方面
1、微信 信息的获取
2、网页跳转(目前应用最为广泛,通过跳转网页,获得更多信息)
3、广告推送(二维码中内藏一张图片,纠错能力低)
4、手机电商(用于记录你下单的信息)
5、优惠促销

使用库
1、Zxing
优点
扫描识别率高
缺点
不能扫描条形码
集成复杂

2、Zbar(一般使用此第三方库)
条形码容错 可以达到30%
优点
集成速度快,难度低
可以扫描条形码
缺点
识别率差(也不差太多)

示例

1 . 生成二维码
使用第三方库libqrencode生成二维码
这里写图片描述

代码如下:

- (IBAction)createBarCodeBtnClicked:(id)sender {    //1.生产二维码 导入库 libqrencode    //2.导入头文件#import "QRCodeGenerator.h"    //3.把一个文本字符串转化为 二维码图片    /**     *  第一个参数 要转化为二维码的字符串     2      生产二维码的尺寸大小     */    //转为 二维码的图片    UIImage *image = [QRCodeGenerator qrImageForString:self.contentTF.text imageSize:300];    self.outImgV.image = image;    //保存到相册 后面三个参数 可以什么都不写    //UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);    //第一个参数是UIImage 对象    //第二个参数是 任意对象地址    //第三个参数是 保存之后 会让 第二个参数调用 第三个参数对应的方法    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);}
//保存图片之后 会调用   结果- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {    if (error) {        NSLog(@"保存失败:%@",error);    }else{        NSLog(@"保存成功!");    }}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    [[UIApplication sharedApplication].keyWindow endEditing:YES];}

使用第三方库ZBar进行二维码的生成和扫描,其中需要导入一些系统库文件
这里写图片描述

这里写图片描述

这里写图片描述
示例代码如下:

- (IBAction)scan:(id)sender {    //ZCZBarViewController 是扫描控制器类    ZCZBarViewController*vc=[[ZCZBarViewController alloc]initWithIsQRCode:NO Block:^(NSString *result, BOOL isFinish) {        if (isFinish) {            NSLog(@"最后的结果%@",result);            self.resultLabel.text=result;        }    }];    //当前视图推出ZCZBarViewController控制器,会显示扫描视图,选择进行扫描    [self presentViewController:vc animated:YES completion:nil];}- (IBAction)createBarCode:(id)sender {    [ZCZBarViewController createImageWithImageView:self.outImgV String:self.inputTextView.text Scale:4];}
0 0