iOS 花式二维码生成和二维码识别
iOS 原生的二维码识别非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算尽量用原生的二维码识别,然后最近把原生的二维码生成也顺便做了一遍,并且在原有基础上加了一些样式参数,封了一个小库方便以后使用。
项目地址:https://github.com/EyreFree/EFQRCode
EFQRCode 是一个用 Swift 编写的用来生成和识别二维码的库,它基于系统二维码生成与识别进行开发。
生成:利用输入的水印图/图标等资源生成各种艺术二维码;
识别:识别率比 iOS 原生二维码识别率更高。
一. 效果预览执行以下命令:
gitclonegit@github.com:EyreFree/EFQRCode.git;cdEFQRCode/Example;podinstall;openEFQRCode.xcworkspace三. 环境
XCode 8.0+
Swift 3.0+
四. 安装EFQRCode 可以通过CocoaPods进行获取。只需要在你的 Podfile 中添加如下代码就能实现引入:
pod"EFQRCode",'~>1.2.0'五. 快速使用1. 导入 EFQRCode
在你需要使用的地方添加如下代码引入 EFQRCode 模块:
importEFQRCode2. 二维码识别
获取图片中所包含的二维码,同一张图片中可能包含多个二维码,所以返回值是一个字符串数组:
iflettestImage=UIImage(named:"test.png"){iflettryCodes=EFQRCode.recognize(p_w_picpath:testImage){iftryCodes.count>0{print("Thereare\(tryCodes.count)codesintestImage.")for(index,code)intryCodes.enumerated(){print("Thecontentof\(index)QRCodeis:\(code).")}}else{print("ThereisnoQRCodesintestImage.")}}else{print("Recognizefailed,checkyourinputp_w_picpath!")}}3. 二维码生成
根据所输入参数创建各种艺术二维码图片,快速使用方式如下:
//常用参数://content:二维码内容//inputCorrectionLevel(Optional):容错率//L7%//M15%//Q25%//H30%(默认值)//size(Optional):边长//magnification(Optional):放大倍数//(如果magnification不为空,将会忽略size参数)//backgroundColor(Optional):背景色//foregroundColor(Optional):前景色//icon(Optional):中心图标//iconSize(Optional):中心图标边长//isIconColorful(Optional):中心图标是否为彩色//watermark(Optional):水印图//watermarkMode(Optional):水印图模式//isWatermarkColorful(Optional):水印图是否为彩色//额外参数//foregroundPointOffset:前景点偏移量//allowTransparent:允许透明
iflettryImage=EFQRCode.generate(content:"https://github.com/EyreFree/EFQRCode",magnification:9,watermark:UIImage(named:"WWF"),watermarkMode:.scaleAspectFill,isWatermarkColorful:false){print("CreateQRCodep_w_picpathsuccess!")}else{print("CreateQRCodep_w_picpathfailed!")}
结果:
详情可参见具体使用文档:https://github.com/EyreFree/EFQRCode/blob/master/README_CN.md
七. 备注请选用对比度较高的前景色和背景色组合;
想要提高生成二维码的清晰度可以选择使用magnificatio
替代size
,或适当提高它们的数值;
放大倍数过高/边长过大/二维码内容过多可能会导致生成失败;
建议对生成的二维码进行测试后投入使用,例如微信能够扫描成功并不代表支付宝也能成功扫描,请务必根据您的具体业务需要做有针对性的测试;
若有任何问题,期待得到您的反馈,Issue
和Pull request
都是受欢迎的。
备注的备注:好用的话可以给个星星
,蟹蟹,QAQ...
本文链接:http://www.jianshu.com/p/ee0a495fd07a
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。