溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS 花式二維碼生成和二維碼識(shí)別

發(fā)布時(shí)間:2020-07-27 20:41:38 來源:網(wǎng)絡(luò) 閱讀:1850 作者:EyreFree 欄目:移動(dòng)開發(fā)

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

項(xiàng)目地址:https://github.com/EyreFree/EFQRCode


iOS 花式二維碼生成和二維碼識(shí)別

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

  • 生成:利用輸入的水印圖/圖標(biāo)等資源生成各種藝術(shù)二維碼;

  • 識(shí)別:識(shí)別率比 iOS 原生二維碼識(shí)別率更高。

一. 效果預(yù)覽

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

iOS 花式二維碼生成和二維碼識(shí)別

二. 示例

執(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 中添加如下代碼就能實(shí)現(xiàn)引入:

pod "EFQRCode", '~> 1.2.0'

五. 快速使用

1. 導(dǎo)入 EFQRCode

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

import EFQRCode
2. 二維碼識(shí)別

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

if let testImage = UIImage(named: "test.png") {
    if let tryCodes = EFQRCode.recognize(p_w_picpath: 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 p_w_picpath!")
    }
}
3. 二維碼生成

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

// 常用參數(shù):
//                         content: 二維碼內(nèi)容
// inputCorrectionLevel (Optional): 容錯(cuò)率
//                                  L 7%
//                                  M 15%
//                                  Q 25%
//                                  H 30%(默認(rèn)值)
//                 size (Optional): 邊長
//        magnification (Optional): 放大倍數(shù)
//                                  (如果 magnification 不為空,將會(huì)忽略 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: 前景點(diǎn)偏移量
//                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 p_w_picpath success!")
} else {
    print("Create QRCode p_w_picpath failed!")
}

結(jié)果:

iOS 花式二維碼生成和二維碼識(shí)別


六. 使用指南

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

七. 備注

  1. 請選用對比度較高的前景色和背景色組合;

  2. 想要提高生成二維碼的清晰度可以選擇使用 magnificatio 替代 size,或適當(dāng)提高它們的數(shù)值;

  3. 放大倍數(shù)過高/邊長過大/二維碼內(nèi)容過多可能會(huì)導(dǎo)致生成失??;

  4. 建議對生成的二維碼進(jìn)行測試后投入使用,例如微信能夠掃描成功并不代表支付寶也能成功掃描,請務(wù)必根據(jù)您的具體業(yè)務(wù)需要做有針對性的測試;

  5. 若有任何問題,期待得到您的反饋,Issue 和 Pull request 都是受歡迎的。

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


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


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI