Бесплатный SDK для сканирования штрих-кода (формат кода 39) в iOS

Я хочу сканировать штрих-код VIN, который в формате кода 39, используя камеру iphone / ipad. Я пробовал zxing и zbar, но они не работают хорошо. Большую часть времени они не могут распознать штрих-код. Кто-нибудь может показать мне лучший способ сделать это? или есть что-то, что я могу сделать, чтобы увеличить результат, потому что мне нужен только код сканирования 39 (для VIN car).

1 ответов


для этого используйте Zbar. Чтобы получить достаточное разрешение для сканирования, вам нужно будет сканировать штрих-код в ландшафтном режиме. Вот мои настройки (протестированы и работают)

// ADD: present a barcode reader that scans from the camera feed
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;

ZBarImageScanner *scanner = reader.scanner;

//disable other codes to improve performance
[scanner setSymbology: 0
               config: ZBAR_CFG_ENABLE
                   to: 0];
[scanner setSymbology:ZBAR_CODE39 config:ZBAR_CFG_ENABLE to:1];
//only scan vertically, in the middle of the screen (also improves performance)
[reader setScanCrop:CGRectMake(0, 0.4, 1, 0.2)];
[reader setShowsZBarControls:NO];
[reader setShowsHelpOnFail:NO];
//VERY IMPORTANT: reset zoom. by default, the screen is partially zoomed in and will cause a loss of precision
reader.readerView.zoom = 1.0;
reader.readerView.allowsPinchZoom=NO;
reader.readerView.showsFPS=YES;
reader.readerView.tracksSymbols=YES;
//scan landscape only (this also improves performance)
[scanner setSymbology:ZBAR_CODE39 config:ZBAR_CFG_X_DENSITY to:0];
[scanner setSymbology:ZBAR_CODE39 config:ZBAR_CFG_Y_DENSITY to:1];

что должен делать он! Удачи!

Edit / Note: iOS framework теперь включает сканер штрих-кодов с iOS 7. Я использовал реализация чтобы получить лучшие и более легкие результаты, чем с помощью Zbar.