如何在ipod中使用前置摄像头进行条码扫描

Posted

技术标签:

【中文标题】如何在ipod中使用前置摄像头进行条码扫描【英文标题】:How to use front camera for barcode scanning in ipod 【发布时间】:2012-02-11 05:03:56 【问题描述】:

我正在使用后置摄像头读取条形码数据...并且它正在完美扫描。现在我想为此使用前置摄像头...我该怎么做?我应该在哪里进行更改?我使用了 ZBar 条码阅读器

我的代码是:

   - (IBAction) scanButtonTapped
          
         // 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;
           // 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];

          // present and release the controller
               [self presentModalViewController: reader
                         animated: YES];
               [reader release];
    

        - (void) imagePickerController: (UIImagePickerController*) reader
           didFinishPickingMediaWithInfo: (NSDictionary*) info
             
              // ADD: get the decode results
                 id<NSFastEnumeration> results =
                   [info objectForKey: ZBarReaderControllerResults];
                   ZBarSymbol *symbol = nil;
                   for(symbol in results)
                       // EXAMPLE: just grab the first barcode
                          break;

                       // EXAMPLE: do something useful with the barcode data
                          resultText.text = symbol.data;
                          bid.text=symbol.data;

                       // EXAMPLE: do something useful with the barcode image
                          resultImage.image =
                          [info objectForKey: UIImagePickerControllerOriginalImage];

                       // ADD: dismiss the controller (NB dismiss from the *reader*!)
                          [reader dismissModalViewControllerAnimated: YES];
                     

【问题讨论】:

【参考方案1】:

如果我正确理解了您的问题,您所要做的就是打开您的相机使其处于前置模式而不是后置模式,因此请在您第一次调用选取器的方法中写入:

  picker.cameraDevice=UIImagePickerControllerCameraDeviceFront;

希望这能回答您的问题。如果没有,请告诉我。

【讨论】:

这工作可靠吗?前置摄像头不支持自动对焦,这就是我问的原因。我正在使用内置的 ios 支持,使用 AVCaptureMetadataOutput 扫描条形码,我发现前置摄像头不是很可靠。

以上是关于如何在ipod中使用前置摄像头进行条码扫描的主要内容,如果未能解决你的问题,请参考以下文章

如何使用后置摄像头代替前置摄像头?

如何检测android中是否有前置摄像头?

如何在android中使用前置摄像头[重复]

如何在android中使用Intent打开前置摄像头?

android Camera如何判断当前使用的摄像头是前置还是后置

opencv for android中使用照相机前置摄像头是照片是颠倒的?