iOS 使用ZBarSDK掃描條形碼和二維碼
ZBarSDK,一個比較優秀的開源項目,使用起來也很簡單。
ZBarSDK是一個開源的SDK,可從這里下載到源碼,該SDK實現了識別和讀取各種條形碼,包括EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 和 QR Code。
幫助文檔:http://zbar.sourceforge.net/iphone/sdkdoc/index.html
Step1.使用ZBarSDK 需要導入的framework
1.AVFoundation.framework
2.CoreMedia.framework
3.CoreVideo.framework
4.QuartzCore.framework
5.libiconv.dylib
Step2.在ViewController.h 導入#import "ZBarSDK.h"
Step3.在ViewController.h 繼承 <ZBarReaderDelegate>協議
Step4.寫代碼:
ViewController.h
#importViewController.m#import "ZBarSDK.h" @interface ViewController : UIViewController @property (weak, nonatomic) IBOutlet UIImageView *imageView; - (IBAction)scan:(id)sender; @property (weak, nonatomic) IBOutlet UILabel *label; @end
#import "ViewController.h" #import "ZBarSDK.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (IBAction)scan:(id)sender { ZBarReaderViewController * reader = [ZBarReaderViewController new]; reader.readerDelegate = self; ZBarImageScanner * scanner = reader.scanner; [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; reader.showsZBarControls = YES; [self presentViewController:reader animated:YES completion:nil]; } -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { id在界面上放置一個UIImageView/UILabel/UIButton, UIImageView 用于顯示掃描到的圖像,UILabel用于顯示掃描到的信息,UIButton 用于響應事件。results = [info objectForKey:ZBarReaderControllerResults]; ZBarSymbol * symbol; for(symbol in results) break; _imageView.image = [info objectForKey:UIImagePickerControllerOriginalImage]; [picker dismissViewControllerAnimated:YES completion:nil]; _label.text = symbol.data; } @end
布局如圖:
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!