详细易懂的二维码的扫描、识别与生成

ios7之前我们实现二维码扫描是借助第三方(ZBarZXing等)来实现的,在ios7之后系统自己提供二维码扫描的方法,性能也要比第三方更好。

今天就来介绍一下原生二维码的使用,包括扫描二维码从图片扫描二维码生成二维码。讲解中只展示部分代码,具体请看Github Demo,里面的代码不多,也很容易看懂。

扫描二维码

二维码扫描需要用到AVFoundation.framework,需要用先创建一个AVCaptureSession,然后设置输入输出流,以及扫描区域和支持的格式:

然后用这个session生成一个AVCaptureVideoPreviewLayer加到某个view的layer上,就可以实时显示摄像头捕捉的内容了:

然后调用[self.session startRunning];开始捕获,当扫描出结果后会调用下面的代理方法,其中metadataObject.stringValue就是扫描后的结果。

为了在黑夜也可以很好的扫描,可以设置一个闪光灯的开关:

111608265-268a61962145720c

扫描二维码
从图片扫描

有时候我们需要从图片中扫描二维码,或者从相册选择一张图片,代码如下,具体可以看demo。其中feature.messageString就是扫描后的结果。

121608265-2b1fa03e6a50237b
从图片扫描
生成二维码

生成二维码的代码很简单,代码如下。

131608265-dc0ad3554614009f

黑白二维码

上面默认生成的时黑白二维码,不过我们也可以改颜色:

141608265-7211754266ea9998

为二维码改变颜色

有的二维码也会在中心加一个小图片,例如用户头像,代码如下:

151608265-b904ed48d3a825fd

中心加小图的二维码

其实也可以扫描条形码,大家可以对着条形码试一试,代码都是通用的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值