iPhone 用のプロジェクトで ZBarSDK を使用しています。
埋め込みリーダーとして ZBar を使用しています。基本的に、Interface Builder で UIView を接続します。クラスをZBarReaderView
デリゲート メソッドに変更して実装し-(void)readerView: (ZBarReaderView*) view didReadSymbols: (ZBarSymbolSet*) syms fromImage: (UIImage*) img
ます。
ほとんどの場合、これで問題なく動作します。ただし、明らかに正しくスキャンされないバーコードがあります。最初のブロックは間違って解釈されます。5008914...
私は次のようなものを手に入れ7001814...
、次に正しいものを手に入れます4001954...
SDK の「EmbedReader」の例に戻り、調整が必要な可能性があるかどうかを調べたところ、同じエラーが発生することがわかりました。「ReaderSample」の例を見ると、エラーは発生しませんが、これはZBarReaderViewController
.
ZBAR_CFG_X_DENSITY
次に、メソッドでand ZBAR_CFG_Y_DENSITY
both を 3 に変更しようとしましたviewWillAppear
が、影響はありませんでした。
ZBarReaderViewController
とのスキャン機構の違いは何ZBarReaderView
ですか? 間違った結果を抑えるにはどうすればよいですか?
ありがとう
関連するコードの一部を次に示します。
.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];
}