使用ZBar来读取条形码和二维码的方法

转载 2013年12月03日 08:39:08

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html


2.新建一个项目。

3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项

4.在项目文件的target中加入 以下framework

5.在appDelegate文件中加入 标记部分的代码

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  2. {  
  3.     self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
  4.     // Override point for customization after application launch.  
  5.     self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];  
  6.     self.window.rootViewController = self.viewController;  
  7.     [self.window makeKeyAndVisible];  
  8.       
  9.       
  10.     // force view class to load so it may be referenced directly from NIB  
  11.     [ZBarReaderView class];  
  12.       
  13.       
  14.     return YES;  
  15. }  

注意此代码:

  1. // force view class to load so it may be referenced directly from NIB  
  2.  [ZBarReaderView class];  


6.在.h文件中加入   ZBarReaderViewDelegate的实现,代码如下:
  1. //  
  2. //  ViewController.h  
  3. //  FootSafety  
  4. //  
  5. //  Created by 泽宇 徐 on 12-6-12.  
  6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
  7. //  
  8.   
  9. #import <UIKit/UIKit.h>  
  10. #import "ZBarSDK.h"  
  11.   
  12. @interface ViewController : UIViewController<ZBarReaderViewDelegate>  
  13. {  
  14.     IBOutlet UILabel  * label ;  
  15.     ZBarReaderView *readerView;  
  16.     ZBarCameraSimulator *cameraSim;  
  17. }  
  18.   
  19. @property(nonatomic,retain) UILabel * label ;  
  20. @property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;  
  21.   
  22.   
  23. @end  

7.在.m文件中要实现的主要方法是:

[html] view plaincopy
  1. - (void) readerView: (ZBarReaderView*) view  
  2.      didReadSymbols: (ZBarSymbolSet*) syms  
  3.           fromImage: (UIImage*) img  
  4. {  
  5.     // do something useful with results  
  6.     for(ZBarSymbol *sym in syms) {  
  7.         self.label.text = sym.data;  
  8.         break;  
  9.     }  
  10. }  

这里是功能是读取照片信息,把条码放如label显示


[html] view plaincopy
  1. -(void) viewDidAppear:(BOOL)animated  
  2. {  
  3.     // run the reader when the view is visible  
  4.     [readerView start];  
  5. }  

这个是在显示视图的时候,启动摄像头,开始扫描


[html] view plaincopy
  1. - (void)viewDidLoad  
  2. {  
  3.     [super viewDidLoad];  
  4.     // Do any additional setup after loading the view, typically from a nib.  
  5.       
  6.     // the delegate receives decode results  
  7.     readerView.readerDelegate = self;  
  8.       
  9.     // you can use this to support the simulator  
  10.     if(TARGET_IPHONE_SIMULATOR) {  
  11.         cameraSim = [[ZBarCameraSimulator alloc]  
  12.                      initWithViewController: self];  
  13.         cameraSim.readerView = readerView;  
  14.     }  
  15.   
  16. }  

在初始化的时候,设置托管。


.m文件所有内容是:

[html] view plaincopy
  1. //  
  2. //  ViewController.m  
  3. //  FootSafety  
  4. //  
  5. //  Created by 泽宇 徐 on 12-6-12.  
  6. //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
  7. //  
  8.   
  9. #import "ViewController.h"  
  10.   
  11. @interface ViewController ()  
  12.   
  13. @end  
  14.   
  15. @implementation ViewController  
  16. @synthesize label;  
  17. @synthesize readerView;  
  18.   
  19. - (void)viewDidLoad  
  20. {  
  21.     [super viewDidLoad];  
  22.     // Do any additional setup after loading the view, typically from a nib.  
  23.       
  24.     // the delegate receives decode results  
  25.     readerView.readerDelegate = self;  
  26.       
  27.     // you can use this to support the simulator  
  28.     if(TARGET_IPHONE_SIMULATOR) {  
  29.         cameraSim = [[ZBarCameraSimulator alloc]  
  30.                      initWithViewController: self];  
  31.         cameraSim.readerView = readerView;  
  32.     }  
  33.   
  34. }  
  35.   
  36. -(void) viewDidAppear:(BOOL)animated  
  37. {  
  38.     // run the reader when the view is visible  
  39.     [readerView start];  
  40. }  
  41.   
  42.   
  43. - (void) readerView: (ZBarReaderView*) view  
  44.      didReadSymbols: (ZBarSymbolSet*) syms  
  45.           fromImage: (UIImage*) img  
  46. {  
  47.     // do something useful with results  
  48.     for(ZBarSymbol *sym in syms) {  
  49.         self.label.text = sym.data;  
  50.         break;  
  51.     }  
  52. }  
  53.   
  54.   
  55.   
  56. - (void)viewDidUnload  
  57. {  
  58.     [super viewDidUnload];  
  59.     // Release any retained subviews of the main view.  
  60. }  
  61.   
  62. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  63. {  
  64.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  65. }  
  66.   
  67. -(void) dealloc  
  68. {  
  69.     [self.readerView release];  
  70.     [self.label release];  
  71.     [super dealloc];  
  72. }  
  73.   
  74. @end  

在ViewController.xib文件中 增加一个view,并且修改view的类是ZBarReaderView ,并且指向 .h文件中定义的 
  1. ZBarReaderView *readerView;  

二维码扫描-zbar的使用

最近在做的项目中需要用到二维码扫描功能 ZXing也有对应的iOS版本,经过了解,ZBar也是一个常用的二维码识别软件, 并分别提供了iOS和Android的SDK可供使用,最终我选择了ZBar进...
  • u012701023
  • u012701023
  • 2015年10月06日 00:17
  • 1092

Android使用ZBar扫描二维码/条形码(实例)+常见问题汇总

写在前面:因项目需求,需要实现二维码扫码功能,笔者测试过多种开源扫码工具,但因不跨平台、扫描速度慢等问题逐个放弃,最后选用ZBar实现功能,笔者发现ZBar扫码在跨主流手机平台、扫码速度等方面有较明显...
  • bestlove12345
  • bestlove12345
  • 2016年06月10日 18:54
  • 5490

Python学习笔记--使用Zbar解码二维码

前几天朋友让我用Python写的解码二维码的程序,我在网上东找西找,找到了所关注的bigxu的python 使用zbar解码二维码。感觉他的比较靠谱,然后就使用了下。但是他的介绍博客有点不详细,我在...
  • sdtvyyb_007
  • sdtvyyb_007
  • 2015年04月11日 09:03
  • 4165

使用ZBar来读取条形码和二维码的方法

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。...
  • qingsi00
  • qingsi00
  • 2013年01月14日 11:32
  • 1321

使用ZBar来读取条形码和二维码的方法

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。...
  • Dreamer5
  • Dreamer5
  • 2014年09月26日 15:52
  • 320

使用ZBar来读取条形码和二维码的方法

使用ZBar来读取条形码和二维码的方法 分类: xcode(Iphone)编程2012-06-12 23:58 15350人阅读 评论(11) 收藏 举报 applicationi...
  • u014410695
  • u014410695
  • 2014年08月14日 22:35
  • 955

使用ZBar来读取条形码和二维码的方法

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。...
  • buruifeng
  • buruifeng
  • 2013年07月17日 23:52
  • 686

使用ZBar来读取条形码和二维码的方法

 1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。把Z...
  • killcwd
  • killcwd
  • 2014年06月11日 11:36
  • 454

ios 使用ZBar读取条形码和二维码

1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html 2.新建一个项目。 3.导入 ZBar的sdk。把ZBar ...
  • u012960049
  • u012960049
  • 2016年05月26日 10:29
  • 2094

OpenCv+Zbar在工业环境下读取条形码和二维码

Zabr是一种开源的一维码和二维码检测工具,该工具检测时适应性很强,如下图的示例图片在不进行任何图像处理情况下都可以便正确读取条形码或者二维码的信息,适合于工业环境下光照不稳定情况下识别条形码和二维码...
  • Chailiren
  • Chailiren
  • 2017年03月25日 14:51
  • 1537
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用ZBar来读取条形码和二维码的方法
举报原因:
原因补充:

(最多只允许输入30个字)