二维码生成和扫描

2017-05-05  本文已影响0人  笑里剑

第一部分:二维码生成

关于二维码的生成有很多第三方插件,本次demo主要使用libqrencode来实现二维码生成

需先导入头文件libqrencode/QRCodeGenerator.h

二维码本质上来说是一张图片,所以先生成一张图片,以下为代码

此时生成的只是一个UIImage对象,此后我们需要对该对象的大小进行调整,调整的尺度在于我们最终要显示的图片的大小(PS:一般而言二维码图片是一张正方形图片),以下为代码

这个时候其实已经完成了二维码的生成,但是有些情况下我们可能觉得生成的二维码颜色不是很满意。如果你想自定义自己的二维码颜色,这个时候你需要对其进行颜色填充

此时我们已经完成了二维码的生成工作

第二部分:二维码的扫描

二维码的扫描需要引入系统的AVFoundation/AVFoundation.h文件,同时需要遵守AVCaptureMetadataOutputObjectsDelegate协议。

对于二维码的扫描比较简单,唯一需要注意的一点是关于扫码范围的限制。二维码识别范围是rectOfInterest这个CGRect类型的量,但是需要这个CGRect和我们平常使用的坐标系不同,苹果API是这么描述的

大意是说这个变量是个比例尺度的变量,并且坐标系和我们平常使用的是相反。比如你想在坐标系统中将扫码范围定在(x,y,w,h)的位置,这时你在这个坐标系下要这么输入(y/H,x/W,h/H,w/W)�(PS:此处W是父容器的宽度,H是父容器的高度)。个人对于这个坐标的理解是正常坐标系统的镜像坐标

如果诸位有啥不明白的可以看gitHub

上一篇下一篇

猜你喜欢

热点阅读