1

iOS6でバーコードリーダーアプリを開発しています。

私はこのチュートリアルZBar sdkを使用してアプリを開発し まし た。バーコードをスキャンすると、フォーマットの製品のみがスキャンされますが、などの他のフォーマットの製品はスキャンされません。UPCEAN_13Code_128

これが私のコードスニペットです、

- (IBAction) scanButtonTapped
{

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

    ZBarImageScanner *scanner = reader.scanner;

    [scanner setSymbology: ZBAR_I25
                   config: ZBAR_CFG_ENABLE
                       to: 0];

    [self presentViewController:reader animated:YES completion:nil];

}

- (void) imagePickerController: (UIImagePickerController*) reader
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    id<NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        break;

    NSLog(@"symbol.data=%@",symbol.data);

    [reader dismissViewControllerAnimated:YES completion:nil];

}

すべてのタイプの製品をスキャンする方法は?何か案が ?

4

1 に答える 1

5

ZbarのFAQから

ZBarデコーダーは、デフォルトでEAN-13のみを有効にします

UPC-Aシンボル体系は、先頭の0で始まるEAN-13のサブセットです... UPC-Aを明示的に有効にする代わりに、12桁の結果を受け取ることを選択できます。

EAN13が有効になっているようです。Code 128を有効にするには、Interleaved 2 of 5(I25)を無効にした後に次のスニペットを配置します

[scanner setSymbology: ZBAR_CODE128
     config: ZBAR_CFG_ENABLE
     to: 1];

有効または無効にするものを厳密に制御する場合は、すべてのシンボルを無効にし、必要なシンボルを選択的に有効にします。

// Disable all symbologies
[scanner setSymbology: 0
     config: ZBAR_CFG_ENABLE
     to: 0];
// Enable EAN 13
[scanner setSymbology: ZBAR_EAN13
     config: ZBAR_CFG_ENABLE
     to: 1];
// Enable UPC-A
[scanner setSymbology: ZBAR_UPCA
     config: ZBAR_CFG_ENABLE
     to: 1];
// Enable Code 128
[scanner setSymbology: ZBAR_CODE128
     config: ZBAR_CFG_ENABLE
     to: 1]
于 2013-01-28T11:50:02.850 に答える