AV基础相机预览图层放大,如何缩小?
目前我正在使用的应用程序有一个主要function,使用Zxing库( http://code.google.com/p/zxing/ )连续扫描QR /条码。 对于连续的帧捕获,我用来初始化AVCaptureSession和AVCaptureVideoOutput,AVCaptureVideoPreviewLayer中描述的苹果Q&A http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html 。
我的问题是,当我用来运行相机预览时,通过video设备可以看到的图像比通过iPhone的静态相机可以看到的图像大1.5倍。 我们的客户在扫描时需要将iPhone与条码保持5厘米左右的距离,但是如果将iPhone保持为该参数,整个QR码将不可见并且解码失败。 为什么iPhone 4中的摄像机放大图像(通过查看AVCaptureVideoPreviewLayer)?
这是AVCaptureSessionvideo预设的function,可以使用.sessionPreset属性进行访问。 例如,在configuration你的CaptureSession之后,在启动之前,你可以添加
captureSession.sessionPreset = AVCaptureSessionPresetPhoto;
请参阅这里的文档:
iOS参考文档
video的默认预设是1280×720(我认为)这是一个比相机支持的最大分辨率低。 通过使用“照片”预设,您将获得原始相机数据。
您看到与内置iPhone相机应用程序相同的行为。 在静态和video捕捉模式之间切换,您会注意到默认缩放级别会改变。 您可以在静止模式下看到更宽的视angular,而video模式稍微放大。
我的猜测是,连续的video捕捉需要使用摄像头传感器的较小区域以最佳方式工作。 如果它使用了整个传感器,那么系统可能无法保持30 fps。 使用传感器的较小区域可以实现“放大”到场景的效果。
我正在回答我自己的问题。 即使在苹果开发者论坛上,这个问题也没有得到解答,所以我直接提出了苹果的技术支持请求,他们回答说这是一个已知的问题,将来会被修复和发布。 所以,除了等待和观望,我们无能为力。