【问题标题】:Implementing "Zoom" feature in AVCamViewController在 AVCamViewController 中实现“缩放”功能
【发布时间】:2014-08-15 08:41:26
【问题描述】:

我正在尝试在我的应用中实现“缩放”功能。我的应用程序只支持静止图像,不支持视频捕捉等。我认为它应该是直截了当的,但是我可以缩放图像但是当我拍摄静止图像时,图像以完整图像显示,没有放大/出效果。 我正在使用 Apple 提供的 AVCamViewController 类。 如果你们指出我所缺少的,我将不胜感激。

- (IBAction)zoomView {
    self.zoomScale =  1 + self.zoomSlider.value;
    self.previewView.transform = CGAffineTransformScale(CGAffineTransformIdentity,self.zoomScale, self.zoomScale);

    DLog(@"zoom scale:%f",self.zoomScale);
}

【问题讨论】:

    标签: ios objective-c camera zooming


    【解决方案1】:

    如果您使用的是 Apple 的示例代码,那么我建议您对 AVCaptureDeviceInput 对象执行缩放,而不是缩放视图。

    例如,这就是我在 UIGestureRecognizer(处理捏合手势)中执行此操作的方式:

    dispatch_async(self.sessionQueue, ^{
        AVCaptureDevice *device = [[self getActiveVideoDeviceInput] device];
        NSError *error = nil;
        if ([device lockForConfiguration:&error])
        {
            device.videoZoomFactor = MAX(scale, 1.0);
            [device unlockForConfiguration];
        }
        else
        {
            NSLog(@"%@", error);
        }
    });
    

    【讨论】:

    • @joelg,你能说说你为什么建议在视图上这样做吗?您说得对,它似乎可以工作(尽管在松开捏合后尝试缩放时会出现故障),但是我很好奇为什么这比缩放视图更好?谢谢
    • 当然。仅仅是因为 AVCaptureDevice 文档提供了有助于缩放的属性和方法的有用描述:developer.apple.com/library/ios/documentation/AVFoundation/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2012-08-25
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    相关资源
    最近更新 更多