我使用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
缩放方法。
谢谢。
我希望得到一个真正的专家的意见,但由于没有人插话,我以为我会分享我的经验。由于没有真正的机械变焦,所以它只是玩高宽比。我发现在使用CGAffineTransform工作得很好的图层时,尤其是在创建会话时设置AVCaptureVideoPreviewLayer.videoGravity设置时。将变换与滑块或捏合手势链接起来非常简单。如果将帧设置为视图边界,该变换甚至可以处理奇数帧大小。希望有所帮助。 – CocoaEv
谢谢你的回答,我想实现使用变换的缩放,但我花了很少的时间使它使用scrollview缩放,效果很好:)我想问这个问题,也许AV框架有缩放的东西。 –
滚动视图的好提示。我也要检查一下。 – CocoaEv