【问题标题】:Scanning and capturing barcode with ZBar使用 ZBar 扫描和捕获条码
【发布时间】:2013-05-14 07:39:53
【问题描述】:

尝试使用 ZBar 捕获条码。我目前有以下代码。当绿色覆盖出现在代码周围时,扫描仪显示并似乎在扫描条形码。我不知道如何捕获解码结果。

我可能做错了,所以我想问一下。扫描时没有任何内容输出到控制台,所以不要认为 didReadSymbols 被调用了。

.h

@interface ScannerViewController : UIViewController <ZBarReaderDelegate> {
}

@property (strong, nonatomic) IBOutlet UILabel *readerResult;
@property (strong, nonatomic) IBOutlet UIView *readerView;
@property (strong, nonatomic) IBOutlet ZBarReaderView *zbr;

.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    // force class to load so it may be referenced directly from nib
    [ZBarReaderViewController class];

    ZBarReaderViewController *reader= [ZBarReaderViewController new];
    reader.readerDelegate = self;

    ZBarImageScanner *scanner = reader.scanner;
    //reader.cameraOverlayView = self.readerView;
    [scanner setSymbology: 0
                          config: ZBAR_CFG_ENABLE
                              to: 1];
    [reader setShowsZBarControls:NO];
    [reader.readerView start];
    self.zbr = reader.readerView;
    [self.view addSubview:reader.view];

}

- (void) zbr: (ZBarReaderView*) view
     didReadSymbols: (ZBarSymbolSet*) syms
          fromImage: (UIImage*) img
{
    NSLog(@"Scanner used");
    //do something useful with results and display resultText in resultViewController
    for(ZBarSymbol *sym in syms) {
        NSLog(@"Logged");
        //return resultText;
        break;
    }
}

任何建议都会很棒。我现在对此感到非常困惑。干杯。

【问题讨论】:

  • 这里有同样的问题

标签: ios objective-c zbar-sdk


【解决方案1】:

当我查看 ZBar 的文档时,I see the delegate method signature is

- (void) readerView:(ZBarReaderView*)readerView didReadSymbols:(ZBarSymbolSet*)symbols fromImage:(UIImage*)image

这与您上面的内容不同。将您的“zbr”替换为“readerView”,您的委托方法应该被调用。

【讨论】:

    【解决方案2】:

    我在 ScannerViewController 界面中添加了以下内容。

    ZBarReaderViewController *reader;
    

    然后我更改了下面的 readerView 方法,它工作得很好。

    - (void) imagePickerController: (UIImagePickerController*) reader
     didFinishPickingMediaWithInfo: (NSDictionary*) info
    {
        id<NSFastEnumeration> results =
        [info objectForKey: ZBarReaderControllerResults];
        UIImage *image =
        [info objectForKey: UIImagePickerControllerOriginalImage];
        NSString *resultText = [[NSString alloc] init];
        for(ZBarSymbol *sym in results) {
    
            NSLog(@"%@", sym.data);
            resultText = sym.data;
            //return resultText;
            break;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多