ZBar的使用
2012-08-01 13:27:43| 分類:
默認分類 |舉報
|字號
訂閱
基本介紹: 引用:http://blog.csdn.net/miracle_of_thinking/article/ details/7576532
如今二維碼隨處可見,無論是實物商品還是各種禮券都少不了二 維碼的身影。而手機等移動設備又成爲二維碼的一個很好的應用 平臺,不管是生成二維碼還是掃碼二維碼。 下面介紹一下如何在蘋果iOS設備上使用二維碼:
掃描二維碼(解碼)
掃描二維碼的開源庫有很多如 ZBar、ZXing等。在此以ZBar作
爲例子構建二維碼掃碼應用。
首先在github上下載ZBar SDK,地址https://github.com/ bmorton/ZBarSDK。
打開壓縮包,其中有ZBarSDK
文件夾,將ZBarSDK
文件夾包
拖到項目中來。
如下圖:
注意頭文件路徑填寫:
未命名文件夾/
(Finder)
(XCode) 其中包含一個libzbar.a的靜態庫。
接着往項目中添加Framework框架及鏈接庫(動態庫、靜態
庫)。在項目屬性TARGETS Summary 中找到Linked Frameworks and Libraries,添加AVFoundation.framwork, CoreMedia.framework, CoreVideo.framework, libiconv.dylib 和libzbar.a (如圖)
第二步
然後在使用的地方引入頭文件#import "ZBarSDK.h"。
調用ZBar的類必須實現ZBarReaderDelegate協議,如: UIViewController <ZBarReaderDelegate>。
//掃描二維碼
- (IBAction)play:(id)sender {
ZBarReaderViewController *reader=[[ZBarReaderViewController alloc] init];
reader.readerDelegate=self;
if ([ZBarReaderViewController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
reader.sourceType=UIImagePickerControllerSourceTypeCamera;
ZBarImageScanner *scanner=reader.scanner;
[scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];
// [self presentModalViewController:reader animated:YES];
// [self.navigationController pushViewController:reader animated:YES];
[self presentViewController:reader animated:YES completion:nil];
}
}
//生成二維碼
- (IBAction)newAlloc:(id)sender {
self.image.image = [QRCodeGenerator qrImageForString:@"小柯" imageSize:self.image.bounds.size.width];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
id<NSFastEnumeration>results=[info objectForKey:ZBarReaderControllerResults];
ZBarSymbol *symbol=nil;
for (symbol in results)
break;
NSLog(@"====%@",symbol.data);
[self dismissViewControllerAnimated:YES completion:nil];
}