2013-01-08 81 views
1

我正在使用ZBarSDK和iPhone項目。在ZBAR SDK示例中錯誤地解碼條形碼

我正在使用ZBar作爲嵌入式閱讀器。基本上在界面生成器中掛接一個UIView。將班級更改爲ZBarReaderView並實施委託方法-(void)readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img

這在大多數情況下工作正常。然而,條形碼顯然不能正確掃描。第一個塊被解釋爲錯誤。我得到的東西像5008914...的下一次我7001814...,然後我得到正確的4001954...

我又回到了從SDK中的「EmbedReader」的例子,並期待看看我是否能找到可能需要作出的任何調整並發現它也產生了相同的錯誤。如果我看一下示例「ReaderSample」,則不會發生該錯誤,但是這會使用ZBarReaderViewController的實例。

然後我試圖將ZBAR_CFG_X_DENSITYZBAR_CFG_Y_DENSITY都更改爲3我的viewWillAppear方法,但沒有影響。

ZBarReaderViewControllerZBarReaderView的掃描機制有什麼區別?我能做些什麼來抑制錯誤的結果?

謝謝

這裏有一些相關的代碼片段。

在.H

@interface ScanVC:UIViewController<ZBarReaderViewDelegate> 
{ 
    IBOutlet ZBarReaderView *readerView; 
    ... 
} 
... 
@property (nonatomic, retain) IBOutlet ZBarReaderView *readerView; 
... 

在.M

@synthesize readerView; 
... 
-(void) viewDidAppear: (BOOL) animated 
{ 
    [[readerView scanner] setSymbology:0 config:ZBAR_CFG_X_DENSITY to: 3]; 
    [[readerView scanner] setSymbology:0 config:ZBAR_CFG_Y_DENSITY to: 3]; 
    [[readerView scanner] setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; 
    [readerView start]; 
} 
... 
- (void) readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img 
{ 
    for(ZBarSymbol *sym in syms) { 
    ... 
    } 
    ... 
} 
... 
-(void)viewDidLoad 
{ 
    [readerView setDelegate: self]; 
} 

回答

1

我注意到,你禁用的5碼交錯2。你知道你將掃描哪種類型,或者你實際上是否正在掃描除I25之外的所有內容?如果是這樣,你可能想嘗試僅啓用一個符號類型 - 例如,只有39碼:

[[readerView scanner] setSymbology:0 config:ZBAR_CFG_ENABLE to:0]; 
[[readerView scanner] setSymbology:ZBAR_CODE39 config:ZBAR_CFG_ENABLE to:1]; 

我發現,這樣做讓我更準確的結果(更迅速地爲好)。

+0

是 - 我確定我沒有掃描I25 ... – Joseph