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


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

    2.新建一个项目。

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

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

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

    [cpp] view plain copy
     
    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. }  

    注意此代码:

    [cpp] view plain copy
     
    1. // force view class to load so it may be referenced directly from NIB  
    2.  [ZBarReaderView class];  
    6.在.h文件中加入   ZBarReaderViewDelegate的实现,代码如下:
    [cpp] view plain copy
     
    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 plain copy
     
    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 plain copy
     
    1. -(void) viewDidAppear:(BOOL)animated  
    2. {  
    3.     // run the reader when the view is visible  
    4.     [readerView start];  
    5. }  

    这个是在显示视图的时候,启动摄像头,开始扫描
    [html] view plain copy
     
    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 plain copy
     
    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文件中定义的 
    [cpp] view plain copy
     
    1. ZBarReaderView *readerView;  
    版权声明:本文为博主原创文章,未经博主允许不得转载。
    
    1.使用ZBar项目。下载地址是: http://zbar.sourceforge.net/iphone/index.html
    
    
    2.新建一个项目。
    
    3.导入 ZBar的sdk。把ZBar SDK的目录拉入项目,然后选中copy选项
    
    4.在项目文件的target中加入 以下framework
    
    
    5.在appDelegate文件中加入 标记部分的代码
    [cpp] view plain copy
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
    {  
        self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];  
        // Override point for customization after application launch.  
        self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];  
        self.window.rootViewController = self.viewController;  
        [self.window makeKeyAndVisible];  
          
          
        // force view class to load so it may be referenced directly from NIB  
        [ZBarReaderView class];  
          
          
        return YES;  
    }  
    注意此代码:
    
    [cpp] view plain copy
    // force view class to load so it may be referenced directly from NIB  
     [ZBarReaderView class];  
    
    6.在.h文件中加入   ZBarReaderViewDelegate的实现,代码如下:
    [cpp] view plain copy
    //  
    //  ViewController.h  
    //  FootSafety  
    //  
    //  Created by 泽宇 徐 on 12-6-12.  
    //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
    //  
      
    #import <UIKit/UIKit.h>  
    #import "ZBarSDK.h"  
      
    @interface ViewController : UIViewController<ZBarReaderViewDelegate>  
    {  
        IBOutlet UILabel  * label ;  
        ZBarReaderView *readerView;  
        ZBarCameraSimulator *cameraSim;  
    }  
      
    @property(nonatomic,retain) UILabel * label ;  
    @property (nonatomic, retain) IBOutlet ZBarReaderView *readerView;  
      
      
    @end  
    
    7.在.m文件中要实现的主要方法是:
    
    [html] view plain copy
    - (void) readerView: (ZBarReaderView*) view  
         didReadSymbols: (ZBarSymbolSet*) syms  
              fromImage: (UIImage*) img  
    {  
        // do something useful with results  
        for(ZBarSymbol *sym in syms) {  
            self.label.text = sym.data;  
            break;  
        }  
    }  
    
    这里是功能是读取照片信息,把条码放如label显示
    
    [html] view plain copy
    -(void) viewDidAppear:(BOOL)animated  
    {  
        // run the reader when the view is visible  
        [readerView start];  
    }  
    
    这个是在显示视图的时候,启动摄像头,开始扫描
    
    [html] view plain copy
    - (void)viewDidLoad  
    {  
        [super viewDidLoad];  
        // Do any additional setup after loading the view, typically from a nib.  
          
        // the delegate receives decode results  
        readerView.readerDelegate = self;  
          
        // you can use this to support the simulator  
        if(TARGET_IPHONE_SIMULATOR) {  
            cameraSim = [[ZBarCameraSimulator alloc]  
                         initWithViewController: self];  
            cameraSim.readerView = readerView;  
        }  
      
    }  
    
    在初始化的时候,设置托管。
    
    .m文件所有内容是:
    [html] view plain copy
    //  
    //  ViewController.m  
    //  FootSafety  
    //  
    //  Created by 泽宇 徐 on 12-6-12.  
    //  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.  
    //  
      
    #import "ViewController.h"  
      
    @interface ViewController ()  
      
    @end  
      
    @implementation ViewController  
    @synthesize label;  
    @synthesize readerView;  
      
    - (void)viewDidLoad  
    {  
        [super viewDidLoad];  
        // Do any additional setup after loading the view, typically from a nib.  
          
        // the delegate receives decode results  
        readerView.readerDelegate = self;  
          
        // you can use this to support the simulator  
        if(TARGET_IPHONE_SIMULATOR) {  
            cameraSim = [[ZBarCameraSimulator alloc]  
                         initWithViewController: self];  
            cameraSim.readerView = readerView;  
        }  
      
    }  
      
    -(void) viewDidAppear:(BOOL)animated  
    {  
        // run the reader when the view is visible  
        [readerView start];  
    }  
      
      
    - (void) readerView: (ZBarReaderView*) view  
         didReadSymbols: (ZBarSymbolSet*) syms  
              fromImage: (UIImage*) img  
    {  
        // do something useful with results  
        for(ZBarSymbol *sym in syms) {  
            self.label.text = sym.data;  
            break;  
        }  
    }  
      
      
      
    - (void)viewDidUnload  
    {  
        [super viewDidUnload];  
        // Release any retained subviews of the main view.  
    }  
      
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
    {  
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
    }  
      
    -(void) dealloc  
    {  
        [self.readerView release];  
        [self.label release];  
        [super dealloc];  
    }  
      
    @end  
    
    在ViewController.xib文件中 增加一个view,并且修改view的类是ZBarReaderView ,并且指向 .h文件中定义的 
    [cpp] view plain copy
    ZBarReaderView *readerView;  
  • 相关阅读:
    java类加载全过程
    pyAggr3g470r 3.6 发布,新闻聚合器
    fourinone分布式协调设计解析
    修改openJDK7的javac,使得java支持单引号字符串
    SabreDAV 1.8.0 发布,集成 WebDAV 系统
    openSUSE 12.3 里程碑 1 发布
    GroupOffice 4.0.123 发布
    nagios总结与基本配置模板
    Zorin OS 6.1 发布,基于Ubuntu的Linux
    Ehcache 2.6.2 发布,Java 缓存框架
  • 原文地址:https://www.cnblogs.com/archoncap/p/5311740.html
Copyright © 2020-2023  润新知