6

iphone / ipadのカメラを使用して、Code39形式のVINバーコードをスキャンしたいと思います。zxingとzbarを試しましたが、うまく機能しません。ほとんどの場合、彼らはバーコードを認識できません。誰かが私にそれを行うためのより良い方法を教えてもらえますか?または、Code 39(VIN車の場合)をスキャンするだけでよいので、結果を上げるためにできることはありますか。

4

1 に答える 1

8

これを実現するには、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];

それはほとんどそれをするはずです!幸運を!

編集/注:iOSフレームワークにはiOS 7以降のバーコードスキャナーが含まれるようになりました。この実装を使用して、Zbarを使用するよりも優れた簡単な結果を取得しました。

于 2014-01-06T16:48:54.207 に答える