我使用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