top-bnr

iPhoneアプリ公開への道 バーコードリーダ その2

   2015/08/04

Zbarを用いたバーコード読み取りの続きです。

前回から相当時間が空いてしまいましたが、肝さえ掴めば簡単です。

まずは、バーコード読み取り部のViewを定義します。

デザインはstoryboardで行っています。

 

バーコードハードコピー

画像の四角の枠で囲った部分がbarcordViewです。

おそらく通常では選択できないので、viewを貼り付けた後、

右上のCustomClassからZbarReaderViewを選択しておきます。

前回のZbarの設定が成功していたら、選択できるはずです。

それでは、コードの実装です。

まずはヘッダクラスです。

#import "ZBarSDK.h"
#import "ZBarReaderController.h"

@interface ATOBarReaderViewController : UIViewController<ZBarReaderViewDelegate>
{
    IBOutlet ZBarReaderView *readerView;
    ZBarCameraSimulator *cameraSim;
}
@property (nonatomic,retain) NSString *jancode;
/*@property (strong, nonatomic) IBOutlet ZBarReaderView* readerview;*/
@end

バーコードリーダを使うために

#import "ZBarSDK.h"

#import "ZBarReaderController.h"

は必須。

また、ZBarReaderViewDelegateを継承します。

readerViewはバーコード読み取り部のviewです。

続いて、実装部です。

一応

#import "ZBarSDK.h"のインポート宣言だけはしておいてください。

全てはお見せできないので、ポイントごとにご紹介します。

 

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"back.png"]];
    
    readerView.readerDelegate = self;
    readerView.zoom=1;
    
    ZBarImageScanner *scanner = readerView.scanner;
    
    [scanner setSymbology:ZBAR_I25
                   config:ZBAR_CFG_ENABLE
                       to:0];
    if ([[[UIDevice currentDevice] model] hasSuffix:@"Simulator"])
    {
        cameraSim=[[ZBarCameraSimulator alloc] initWithViewController:self];
        cameraSim.readerView=readerView;
    }
    [readerView start];
    
}

ここではロード時にスキャナの宣言と設定をしています。

またシミュレータでのデバッグ用の記述もあります。

設定完了後、startでバーコード読み取りを開始します。

次に、バーコードを読み取った場合の処理です。

/*
 * バーコード利用時の必須デリゲート
 */
- (void)readerView:(ZBarReaderView*)view
	didReadSymbols:(ZBarSymbolSet*)syms
		 fromImage:(UIImage*)img
{
    ZBarSymbol *symbol = nil;
    NSString *resultSymbol;   

    for (symbol in syms)
    {
        break;
    }
    
    resultSymbol = symbol.data;
}

didReadSymbolsが読み取り時に呼ばれます。

読み取り結果がsymsに入っているので、文字列として取り出します。

これでバーコードの読み取りは完了です。

次回は、取得したバーコードを使って、Webサービスによる値取得をしてみようと思います。

bottom-bnr
  • ブログランキング・にほんブログ村へ
  • FC2ブログランキングへ
  • 人気ブログランキングへ
  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る