歡迎加入QQ討論群258996829

iOS 花式二維碼生成和二維碼識別庫 EFQRCode

發(fā)布時間:2017-04-04 00:44  回復(fù):0  查看:7673  感興趣:13  贊:2   最后回復(fù):2017-04-04 00:44  

iOS 原生的二維碼識別非常之棒,反正比 ZXing 和 ZBar 效果都好些,所以以后打算盡量用原生的二維碼識別,然后最近把原生的二維碼生成也順便做了一遍,并且在原有基礎(chǔ)上加了一些樣式參數(shù),封了一個小庫方便以后使用。

項目地址:https://github.com/EyreFree/EFQRCode


iOS 花式二維碼生成和二維碼識別

EFQRCode 是一個用 Swift 編寫的用來生成和識別二維碼的庫,它基于系統(tǒng)二維碼生成與識別進(jìn)行開發(fā)。

  • 生成:利用輸入的水印圖/圖標(biāo)等資源生成各種藝術(shù)二維碼;
  • 識別:識別率比 iOS 原生二維碼識別率更高。

一. 效果預(yù)覽

iOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCodeiOS 花式二維碼生成和二維碼識別庫 EFQRCode

二. 示例

執(zhí)行以下命令:

git clone git@github.com:EyreFree/EFQRCode.git; cd EFQRCode/Example; pod install; open EFQRCode.xcworkspace
 

三. 環(huán)境

  • XCode 8.0+
  • Swift 3.0+

四. 安裝

EFQRCode 可以通過 CocoaPods 進(jìn)行獲取。只需要在你的 Podfile 中添加如下代碼就能實現(xiàn)引入:

pod "EFQRCode", '~> 1.2.0'

五. 快速使用

1. 導(dǎo)入 EFQRCode

在你需要使用的地方添加如下代碼引入 EFQRCode 模塊:

import EFQRCode

2. 二維碼識別

獲取圖片中所包含的二維碼,同一張圖片中可能包含多個二維碼,所以返回值是一個字符串?dāng)?shù)組:

if let testImage = UIImage(named: "test.png") {
    if let tryCodes = EFQRCode.recognize(image: testImage) {
        if tryCodes.count > 0 {
            print("There are \(tryCodes.count) codes in testImage.")
            for (index, code) in tryCodes.enumerated() {
                print("The content of \(index) QR Code is: \(code).")
            }
        } else {
            print("There is no QR Codes in testImage.")
        }
    } else {
        print("Recognize failed, check your input image!")
    }
}
 

3. 二維碼生成

根據(jù)所輸入?yún)?shù)創(chuàng)建各種藝術(shù)二維碼圖片,快速使用方式如下:

// 常用參數(shù):
//                         content: 二維碼內(nèi)容
// inputCorrectionLevel (Optional): 容錯率
//                                  L 7%
//                                  M 15%
//                                  Q 25%
//                                  H 30%(默認(rèn)值)
//                 size (Optional): 邊長
//        magnification (Optional): 放大倍數(shù)
//                                  (如果 magnification 不為空,將會忽略 size 參數(shù))
//      backgroundColor (Optional): 背景色
//      foregroundColor (Optional): 前景色
//                 icon (Optional): 中心圖標(biāo)
//             iconSize (Optional): 中心圖標(biāo)邊長
//       isIconColorful (Optional): 中心圖標(biāo)是否為彩色
//            watermark (Optional): 水印圖
//        watermarkMode (Optional): 水印圖模式
//  isWatermarkColorful (Optional): 水印圖是否為彩色

// 額外參數(shù)
//           foregroundPointOffset: 前景點偏移量
//                allowTransparent: 允許透明
if let tryImage = EFQRCode.generate(
    content: "https://github.com/EyreFree/EFQRCode",
    magnification: 9,
    watermark: UIImage(named: "WWF"),
    watermarkMode: .scaleAspectFill,
    isWatermarkColorful: false
) {
    print("Create QRCode image success!")
} else {
    print("Create QRCode image failed!")
}
結(jié)果:
iOS 花式二維碼生成和二維碼識別
生成示例

六. 使用指南

詳情可參見具體使用文檔:https://github.com/EyreFree/EFQRCode/blob/master/README_CN.md

七. 備注

  1. 請選用對比度較高的前景色和背景色組合;
  2. 想要提高生成二維碼的清晰度可以選擇使用 magnificatio 替代 size,或適當(dāng)提高它們的數(shù)值;
  3. 放大倍數(shù)過高/邊長過大/二維碼內(nèi)容過多可能會導(dǎo)致生成失??;
  4. 建議對生成的二維碼進(jìn)行測試后投入使用,例如微信能夠掃描成功并不代表支付寶也能成功掃描,請務(wù)必根據(jù)您的具體業(yè)務(wù)需要做有針對性的測試;
  5. 若有任何問題,期待得到您的反饋,Issue 和 Pull request 都是受歡迎的。

備注的備注:好用的話可以給個星星,蟹蟹,QAQ...


本文鏈接:http://www.jianshu.com/p/ee0a495fd07a

相關(guān)開源代碼

您還未登錄,請先登錄

熱門帖子

最新帖子

?