实施"缩放" AVCamViewController中的功能

时间:2014-06-24 22:47:17

标签: ios objective-c camera zoom

我试图实施"缩放"我的应用中的功能。我的应用程序仅支持静止图像,没有视频捕获等。我认为它应该是直接的,但是,我能够缩放图像,但是当我拍摄静态图像时,图像以完整图像形式出现,没有缩放 - 进/出效果。 我正在使用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);
}

1 个答案:

答案 0 :(得分: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);
    }
});