ZBarSDK是一個開源的SDK,可從這裡下載下傳到源碼,該SDK實作了識别和讀取各種條形碼,包括EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, Interleaved 2 of 5 和 QR Code。
幫助文檔:
例子分析:
1.導入和使用SDK
導入ZBarSDK檔案并引入一下架構
AVFoundation.framework(weak)
CoreMedia.framework (weak)
CoreVideo.framework (weak)
QuartzCore.framework
libiconv.dylib
最後,引入頭檔案#import “ZBarSDK.h” 即可使用。
2.ReaderSample
使用了ZBarReaderViewController,該類實作了自動捕捉條形碼,設定了ZBarReaderViewController屬性scanner的配置。
當找到條形碼時,會執行代理方法
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
最後讀取并顯示了條形碼的圖檔和内容。
3.EmbedReader
使用了ZBarReaderView,該類實作了使用攝像頭捕捉條形碼,調用start方法開始捕捉,調用stop方法停止捕捉。
當捕捉到條形碼時,會調用代理方法:- (void) readerView:(ZBarReaderView*)readerView didReadSymbols:(ZBarSymbolSet*)symbols fromImage:(UIImage*)image
常用類分析:
1.ZBarReaderViewController用于動态捕捉條形碼
scanner用于配置捕獲圖像的屬性
cameraDevice用于設定前後置攝像頭
代理方法- (void) readerView:(ZBarReaderView*)readerView didReadSymbols:(ZBarSymbolSet*)symbols fromImage:(UIImage*)image在捕獲到條形碼後執行
2.ZBarReaderController繼承與UIImagePickerController,用于手動捕捉條形碼
sourceType用于圖檔擷取方式,攝像頭或相冊
方法takePicture擷取圖檔,并從圖檔中捕獲條形碼
代理方法- (void) imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info,在讀取條形碼後執行,info包含了條形碼資訊。