欢迎光临
我们一直在努力

二维码扫描简单封装

建站超值云服务器,限时71元/月

二维码扫描简单封装

项目介绍:

QRCode
https://github.com/LeeWongSnail/QRCode

二维码扫描(基于系统提供的方法)
DEMO 直接下载:





1、目的
现在越来越多的App添加了一个扫码的功能,方便而且很实用,但是目前对弈iOS来说有些比较知名的库(比如ZXingObjC)库都比较大,而实际上,在iOS 7.0之后系统在AVFoundation框架中就已经实现了对于二维码扫描和生成的的支持,我的方法主要是对系统的一些东西稍作封装(QRCode)


2、生成二维码
目前见到的二维码一般是两种,中间有图片和没有图片的(通常是APP图标或者个人头像)或者是为二维码添加了背景颜色。这里我提供了三个方法,可以满足这几种需求。

[Objective-C] 查看源文件 复制代码

/**
 *  生成二维码图片的方法
 *
 *  @param string 二维码包含的内容
 *  @param size   图片的尺寸
 *  @param topimg 如果中间需要添加 头像可以传入此参数
 *
 *  @return 包含要生成内容的二维码图片
 */

+ (UIImage *)qrImageForString:(NSString *)string 
    imageSize:(CGFloat)size Topimg:(UIImage *)topimg;

/**
 *  生成二维码图片的方法
 *
 *  @param string       二维码包含的内容
 *  @param size         图片的尺寸
 *  @param pointType    点的类型(QRPointRect,
                                        QRPointRound)
 *  @param positionType 位置的类型 (QRPositionNormal,
                                        QRPositionRound)
 *  @param color        背景颜色
 *
 *  @return 包含要生成内容的二维码图片
 */
+(UIImage *)qrImageForString:(NSString *)string 
                    imageSize:(CGFloat)size 
                withPointType:(QRPointType)pointType
            withPositionType:   
                            (QRPositionType)positionType
                    withColor:(UIColor *)color;

/**
 *  生成二维码图片的方法
 *
 *  @param string 二维码包含的内容
 *  @param size    图片的尺寸
 *  @param topimg 如果中间需要添加 头像可以传入此参数
 *  @param color  背景颜色
 *
 *  @return 包含要生成内容的二维码图片
 */

+(UIImage*)qrImageForString:(NSString *)string 
                  imageSize:(CGFloat)size 
                     Topimg:(UIImage *)topimg 
                  withColor:(UIColor*)color;

3、二维码扫描这里 需要重要注意的是 rectOfInterest属性的设置
//它的作用就是设置扫描范围output.rectOfInterest = scanCrop;这个CGRect参数和普通的Rect范围不太一样,它的四个值的范围都是0-1,表示比例。rectOfInterest都是按照横屏来计算的 所以当竖屏的情况下 x轴和y轴要交换一下。宽度和高度设置的情况也是类似。具体的扫描结果通过遵守AVCaptureMetadataOutputObjectsDelegate协议并实现
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
代理方法就可以拿到


4、其他的使用场景

除了最常见的扫描识别二维码的方式之外 还有点击弹出框 选择识别图中二维码,或者 长按直接识别二维码的方式

/** *  识别图中的二维码 * *  @param aImage      图片 *  @param aCompletion 识别完成的回调 */- (void)recognitionQRCodeFromImage:(UIImageView *)aImage         completion:(void (^)(NSString *result,                             NSError *error))aCompletion;

5、总结
这样的话在我们日常使用中常见的几种对于二维码的操作,基本可以实现。希望这个demo对你有所帮助。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 二维码扫描简单封装
分享到: 更多 (0)