日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oc 二维码的扫描-ZBar与生成

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oc 二维码的扫描-ZBar与生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如今二維碼隨處可見,無論是實物商品還是各種禮券都少不了二維碼的身影。而手機等移動設備又成為二維碼的一個很好的應用平臺,不管是生成二維碼還是掃碼二維碼。
1.前言
目前市場主流APP里,二維碼/條形碼集成主要分兩種表現形式來集成:
a. 一種是調用手機攝像頭并打開系統照相機全屏去拍攝
b. 一種是自定義照相機視圖的frame,自己控制并添加相關掃碼指南
今天我就用ZBarSDK來實現上訴兩種主流集成方式,與大家共同交流學習/
2.第一步導入ZBarSDK
可以從github上下載好ZBarSDK,導入項目,并且導入相關iOS.framework 如圖:

我們還需要修改幾個地方防止報錯
1.需要關閉Enable Bitcode

2.需要添加info.plist 文件相機權限
添加key字段NSCameraUsageDescription,string類型,value字段是給用戶的提示文字,例如“我們需要使用您的相機“

3.需要關閉Build Active Architecture Only和刪除arm64

3.集成掃描二維碼/條形碼
3.1.調用手機攝像頭并打開系統照相機全屏去拍攝
實現效果圖: 1.一個按鈕“掃我” —— 2.點擊后打開系統照相機 —— 3.進入全屏拍攝,拍攝二維碼 —— 4.識別成功自動關閉照相機

3.1.1.導入#import?“ZBarSDK.h” 然后實現相關協議
調用系統相機全屏拍攝,使用的協議是,自定義相機窗口使用的是

#import "ZBarSDK.h"@interface ViewController ()<ZBarReaderDelegate,ZBarReaderViewDelegate>

在按鈕“掃我”的click方法里實現相關細節

- (void)click {//初始化相機控制器ZBarReaderViewController *reader = [ZBarReaderViewController new];//設置代理reader.readerDelegate = self;//基本適配reader.supportedOrientationsMask = ZBarOrientationMaskAll;//二維碼/條形碼識別設置ZBarImageScanner *scanner = reader.scanner;[scanner setSymbology: ZBAR_I25config: ZBAR_CFG_ENABLEto: 0];//彈出系統照相機,全屏拍攝[self presentModalViewController: readeranimated: YES]; }

.實現代理方法
不同版本代理有不同的方法
1.

2.

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info {id<NSFastEnumeration> results =[info objectForKey:ZBarReaderControllerResults];ZBarSymbol *symbol = nil;for (symbol in results)break;[picker dismissViewControllerAnimated:YES completion:nil];NSString *text = symbol.data;NSLog(@"%@",text); }

自定義照相機視圖的frame,自己控制并添加相關掃碼指南

調用系統相機全屏拍攝,使用的協議是,自定義相機窗口使用的是

#import "ZBarSDK.h"@interface ViewController ()<ZBarReaderDelegate,ZBarReaderViewDelegate>

在按鈕“掃我”的click方法里實現相關細節

- (void)click {//初始化照相機窗口ZBarReaderView *readview = [ZBarReaderView new];//自定義大小readview.frame = CGRectMake(100, 100, 300, 300);//自定義添加相關指示.........發揮各自的APP的想象力//此處省略美化10000行代碼...................//………………………..// 好進入正題—— 接著設置好代理readview.readerDelegate = self;//將其照相機拍攝視圖添加到要顯示的視圖上[self.view addSubview:readview];//二維碼/條形碼識別設置ZBarImageScanner *scanner = readview.scanner;[scanner setSymbology: ZBAR_I25config: ZBAR_CFG_ENABLEto: 0];//啟動,必須啟動后,手機攝影頭拍攝的即時圖像菜可以顯示在readview上[readview start];}

實現代理方法

-(void)readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage:(UIImage *)image {ZBarSymbol *symbol = nil;for (symbol in symbols)break;NSString *text = symbol.data;}

生成二維碼SDK的Dome“QRCode”中制作libqrencode庫文件

1.制作二維碼/*字符轉二維碼

導入 libqrencode文件

添加#import “QRCodeGenerator.h”

#import "QRCodeGenerator.h"@property (strong , nonatomic) UIImageView* qRImageView;- (void)viewDidLoad{[super viewDidLoad];self.qRImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];[self.view addSubview:self.qRImageView];}-(IBAction)qrBtnPress:(id)sender{self.qRImageView.image = [QRCodeGenerator qrImageForString:@"二維碼存儲的字符串信息 asddsdd" imageSize:self.qRImageView.bounds.size.width];}

總結

以上是生活随笔為你收集整理的Oc 二维码的扫描-ZBar与生成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。