2013-08-12 30 views
2

我有一個應用程序,在該應用程序中,我已經使用ZBar實施了二維碼掃描。在屏幕的某個部分打開zbar掃描儀

現在我也在相機上實現了覆蓋。

問題是,雖然我已經做了一個覆蓋,相機掃描整個屏幕的一部分。

我想掃描屏幕的某個部分。

這裏是我的代碼,

reader = [ZBarReaderViewController new]; 
    isCameraStarted = YES; 

    reader.readerDelegate = self; 
    reader.supportedOrientationsMask = ZBarOrientationMaskAll; 

    //Add flash Camera 
    if(isTorchOn==NO) 
     reader.cameraFlashMode=UIImagePickerControllerCameraFlashModeOff; 
    else 
     reader.cameraFlashMode=UIImagePickerControllerCameraFlashModeOn; 

    ZBarImageScanner *scanner = reader.scanner; 
    // TODO: (optional) additional reader configuration here 

    // EXAMPLE: disable rarely used I2/5 to improve performance 
    [scanner setSymbology: ZBAR_I25 
        config: ZBAR_CFG_ENABLE 
         to: 0]; 

    [scanner setSymbology:ZBAR_NONE config:ZBAR_CFG_ENABLE to:0]; 
    [scanner setSymbology:ZBAR_QRCODE 
        config:ZBAR_CFG_ENABLE 
         to:1]; 
    reader.cameraOverlayView = vw; 
     reader.showsZBarControls=NO; 
    [self presentViewController:reader animated:NO completion:nil]; 
    [reader release]; 

在廣場中間箱

這裏打開相機的出來把我想:

+0

有一個類似的問題問,並在這裏回答http://stackoverflow.com/a/9937269/908263 – Krajsnick

回答

1

而不是使用ZBarReaderViewController,儘量使用ZBarReaderView。 下面的鏈接爲我工作。

- (void)startScanning{ 
NSLog(@"Scanning.."); 
ZBarReaderView*reader = [ZBarReaderView new]; 
ZBarImageScanner * scanner = [ZBarImageScanner new]; 
[scanner setSymbology: ZBAR_I25 
       config: ZBAR_CFG_ENABLE 
        to: 0]; 
reader = [reader initWithImageScanner:scanner]; 
reader.readerDelegate = self; 
reader.tracksSymbols = YES; 
reader.frame = CGRectMake(10, 100, [self getWidth]- 20, [self getHeight] -200); 
reader.torchMode = 0; 
dispatch_async(dispatch_get_main_queue(), ^{[reader start];}); 

[self.container addSubview:reader]; 
} 

-(void) readerView:(ZBarReaderView *)readerView didReadSymbols:(ZBarSymbolSet *)symbols fromImage :(UIImage *)image 
{ 
for (ZBarSymbol *sym in symbols) 
    { 
    NSLog(@"Scanned data: %@", sym.data); 
    break; 
} 
[readerView stop]; 
// action todo 
} 

希望能幫到你。

+0

非常nice.Its工作找我。 –

+0

夢幻般的解決方案......真的解決了我的問題 –