2012-07-05 41 views
6

我想使用iphone/ipad的相機掃描代碼39格式的VIN條形碼。我嘗試了zxing和zbar,但它們不能很好地工作。大多數時候他們無法識別條形碼。任何人都可以告訴我一個更好的方法來做到這一點?或者有什麼我可以做的,以增加結果,因爲我只需要掃描代碼39(VIN車)。用於在iOS中掃描條形碼(代碼39格式)的免費SDK

+0

我的答案能解決您的問題嗎? – Jeremie

回答

7

使用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我以前this implementation以獲得更好的和更容易的結果比使用zbar和條形碼掃描儀。

+1

它工作嗎? – wod

+1

是的,它工作的很棒:)我有0個問題。 – Jeremie

+0

嗨,我使用相同的代碼,但它不工作,我可以請你幫我 – Ravi