【问题标题】:ZBar scanning on ipad 4, setting scancropipad 4上的ZBar扫描,设置scancrop
【发布时间】:2014-11-20 12:45:37
【问题描述】:

我正在尝试使用 ZbarSDK 在 iPad 4 上进行扫描。以下在 iPhone 上运行良好,但在 iPad 4 上,即使自动对焦,它也不会读取条形码。当我没有设置 cameraoverlayview/scanregion 和 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 上却不行。如果是 iPad(如分辨率),在计算 scancrop 时,我还需要考虑其他什么吗?

谢谢。

【问题讨论】:

    标签: xcode barcode-scanner zbar xcode6.1 ios8.1


    【解决方案1】:

    好的,我解决了这个问题。我必须将 iPad 的会话预设设置为 AVCaptureSessionPreset1920x1080。

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        self.readerView.session.sessionPreset = AVCaptureSessionPreset1920x1080;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多