登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

二维码扫描简单封装

[复制链接]
来自: LeeWong 分类: iOS精品源码 上传时间: 2016-9-7 18:08:26
Tag:二维码 QRCode 绘图 背景颜色

项目介绍:

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对你有所帮助。

相关源码推荐:

我来说两句
*滑动验证:
所有评论(185)
王颖博 2016-9-8 12:37:51
感谢分享,Code4App有你更精彩
回复
DXSmile 2016-9-8 14:21:00
楼主威武啊,Code4App有你更给力!
回复
DXSmile 2016-9-8 14:21:49
正需要啊,感谢楼主无私分享!
回复
code4app热心网友 2016-9-8 14:48:06
正需要啊,感谢楼主无私分享!
回复
code4app热心网友 2016-9-8 14:50:59
虽不明,但觉厉!
回复
code4app热心网友 2016-9-8 14:53:02
我只是路过打酱油的。
回复
code4app热心网友 2016-9-8 14:58:37
强烈支持楼主ing……
回复
code4app热心网友 2016-9-8 15:27:23
正需要啊,感谢楼主无私分享!
回复
code4app热心网友 2016-9-8 15:35:19
楼主威武啊,Code4App有你更给力!
回复
提取码:  下载次数:242 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
3839 2 242
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表
博聚网