AVFoundation相机变焦

时间:2013-03-29 11:47:29

标签: ios objective-c avfoundation

我使用AVFoundation框架来显示来自相机的视频。

我如何使用它的代码通常是:

session = [[AVCaptureSession alloc] init] ;
...   
captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
...
[cameraView.layer addSublayer:captureVideoPreviewLayer];
...

所以我想为相机添加缩放功能。

我找到了2个如何实现缩放的解决方案。

首先 :是使用CGAffineTransform

cameraView.transform = CGAffineTransformMakeScale(x,y);

第二 :将cameraView放在滚动视图中,设置最大和最小滚动,并将此视图设置为缩放视图。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return cameraView;
}

使缩放更好的性能和质量的最佳方法是什么?还有其他解决方案可以进行缩放吗?也许我错过了一些AVFoundation缩放方法。

谢谢。

1 个答案:

答案 0 :(得分:6)

实际上有GCFloat名为setVideoScaleandCropFactor

您可以找到文档here

我不确定这是否只适用于静态图像输出,但我一直在研究它,如果你将它设置为手势或滑块并让它控制浮动,它会很好。

您可以找到它的演示here

好东西。我试图循环它,所以我可以创建一个带缩放的条形码扫描仪。哈哈,我正在做的事情很粗糙。