利用zbar实现条形码扫描

来源:互联网 发布:linux 删除路由表 编辑:程序博客网 时间:2024/05/17 01:36

利用条形码,可以简单的得到二维码的值.

需要注意的几个问题  网上有很多的。a文件  各不相同,有的支持64有的不支持,兼容的比较好的一款我在网上找到了对应的github下载地址https://github.com/wxm5558/libzbar,有需要的朋友去下载吧。代码很简单  我是从别处复制的。最重要的是这个.a文件的下载,库文件引入后 如果报错大部分原因是这个.a的事

具体的实现过程如下:

首先下载zbr的sdk。

然后,创建工程,iphone.scanbar。

第三,把下载的ZBarSDK添加到工程中。

第四,然后添加.framework到工程中。


[cpp] view plaincopy
  1. -(void)buttonAction:(UIButton *)btn{  
  2.     ZBarReaderViewController *reader = [ZBarReaderViewController new];  
  3.       
  4.     reader.readerDelegate = self;  
  5.       
  6.     ZBarImageScanner *scanner = reader.scanner;  
  7.       
  8.       
  9.       
  10.     [scanner setSymbology: ZBAR_I25  
  11.        
  12.                    config: ZBAR_CFG_ENABLE  
  13.        
  14.                        to: 0];  
  15.       
  16.       
  17.       
  18.     [self presentModalViewController: reader  animated: YES];  
  19.       
  20.     [reader release];  
  21.       
  22.       
  23.       
  24. }  
  25.   
  26.   
  27. - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info  
  28.   
  29. {  
  30.       
  31.       
  32.       
  33.     NSLog(@"info=%@",info);  
  34.     NSLog(@"info is a -------------->%@",info);  
  35.       
  36.     // 得到条形码结果  
  37.       
  38.     id<NSFastEnumeration> results =  
  39.       
  40.     [info objectForKey: ZBarReaderControllerResults];  
  41.       
  42.     ZBarSymbol *symbol = nil;  
  43.       
  44.     for(symbol in results)  
  45.           
  46.         // EXAMPLE: just grab the first barcode  
  47.           
  48.         break;  
  49.       
  50.       
  51.       
  52.     // 将获得到条形码显示到我们的界面上  
  53.       
  54.     NSString *str  = symbol.data;  
  55.       
  56.     // 扫描时的图片显示到我们的界面上  
  57.     NSLog(@"str is a -------------->%@",str);  
  58.     if([str hasPrefix:@"http"]){  
  59.         NSURL *url = [NSURL URLWithString:str];  
  60.         [[UIApplication sharedApplication] openURL:url];  
  61.     }else if([str hasPrefix:@"localhost:"]){  
  62.         NSString * categoryId = [str substringFromIndex:9];  
  63.         NSDictionary *dic = [NSDictionary dictionaryWithObject:categoryId forKey:@"categoryId"];  
  64.         [[NSNotificationCenter defaultCenter] postNotificationName:@"goIntoMgzViewNotification" object:self userInfo:dic];  
  65.     }else{  
  66.         UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"二维码错误,请更换二维码后重试" delegate:self cancelButtonTitle:@"我知道了" otherButtonTitles:nil, nil] ;  
  67.         [alert show];  
  68.         [alert  release];  
  69.         alert = nil;  
  70.     }  
  71.   
  72.     // resultImage.image =  
  73.       
  74.     [info objectForKey: UIImagePickerControllerOriginalImage];  
  75.       
  76.       
  77.       
  78.     // 扫描界面退出  
  79.       
  80.     [reader dismissModalViewControllerAnimated: YES];  

0 0
原创粉丝点击