二维码

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

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

我们目前开发主要应用在哪方面
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];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值