2014-11-20 2 views
0

Я пытаюсь получить работу сканирования iPad 4 с помощью ZbarSDK. Следующее работает отлично на iPhone, но на iPad 4, он просто не читает штрих-код, даже если он автоматически фокусируется. Когда я не устанавливаю Cameraoverlayview/scanregion и scancrop, я вижу, что он читает штрих-код, используя весь экран. Но когда я устанавливаю область сканирования, которую я хочу, чтобы пользователь использовал для сканирования штрих-кода, он просто не читает.Сканирование ZBar на ipad 4, установка scancrop

-(void) initScanner 
{ 

self.readerDelegate = self; 
self.supportedOrientationsMask = ZBarOrientationMaskAll; 
readerView = [readerView initWithImageScanner:scanner]; 

[self.scanner setSymbology: ZBAR_CODE39 
          config: ZBAR_CFG_ENABLE 
           to: 1]; 
[self.scanner setSymbology: ZBAR_CODE128 
        config: ZBAR_CFG_ENABLE 
         to: 1]; 
[self.scanner setSymbology: ZBAR_QRCODE 
          config: ZBAR_CFG_ENABLE 
           to: 0]; 
[self.scanner setSymbology: ZBAR_I25 
          config: ZBAR_CFG_ENABLE 
           to: 0]; 

[self.scanner setSymbology:ZBAR_EAN13 config:ZBAR_CFG_EMIT_CHECK to:0]; 
[self.scanner setSymbology:ZBAR_UPCA config:ZBAR_CFG_EMIT_CHECK to:0]; 

self.showsZBarControls=NO; 
self.tracksSymbols =true; 
self.readerView.zoom = 1.0; 
self.readerView.torchMode=NO; 

cameraOverlayView = [[UIView alloc] initWithFrame:self.view.frame]; 
UIImageView *overlayReticle = [[UIImageView alloc]   initWithFrame:CGRectMake(10,50,300,130)]; 
[overlayReticle setImage:[UIImage imageNamed:@"scannOverlay.png"]]; 
[cameraOverlayView addSubview:overlayReticle]; 

scanRegionView = [[UIView alloc] initWithFrame:CGRectMake(10,102,300,30)]; 
[cameraOverlayView addSubview:scanRegionView]; 

UIButton *torchButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
torchButton.frame = CGRectMake(cameraOverlayView.frame.origin.x, 200, 100, 30); 
[torchButton setTitle:@"Torch" forState:UIControlStateNormal]; 
[torchButton addTarget:self action:@selector(toggleTorch:) forControlEvents:UIControlEventTouchUpInside]; 
torchButton.backgroundColor= [UIColor clearColor]; 
torchButton.tag = 99; 
[cameraOverlayView addSubview:torchButton]; 

self.cameraOverlayView=cameraOverlayView; 

self.scanCrop=[self getScanCropRectBasedOnTargetOverlayCropRect:scanRegionView.frame forOverlayViewSize:cameraOverlayView.frame.size]; 

} 

, а затем я использую этот код из этого link вычислить значение scancrop. Несмотря на то, что он работает на iPhone, но на iPad 4 это не так. Есть ли что-нибудь еще, что мне нужно рассмотреть, в случае iPads (например, разрешение), при расчете scancrop?

Спасибо.

ответ

0

ОК, я исправил эту проблему. Я должен был установить настройку сеанса для iPad на AVCaptureSessionPreset1920x1080.

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    self.readerView.session.sessionPreset = AVCaptureSessionPreset1920x1080; 
} 
Смежные вопросы