본문 바로가기

프로그래밍/iOS

[ios] AVCaptureSession Zoom

 

AVCaptureDevice *_videoDevice;

_videoDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

if (_videoDevice) {

   NSError *error;

   _videoIn = [AVCaptureDeviceInput deviceInputWithDevice:_videoDevice error:&error];

   if (!error)

   {

      if ([[self captureSession] canAddInput:_videoIn])

      {

          [[self captureSession] addInput:_videoIn];

       }

      else

         NSLog(@"Couldn't add video input");

   }

   else

      NSLog(@"Couldn't create video input");

}

else

   NSLog(@"Couldn't create video capture device");


위와 같이 비디오 인풋을 설정한 뒤

 [_videoDevice lockForConfiguration:nil];

 _videoDevice.activeFormat = [_videoDevice.formats lastObject];

 _videoDevice.videoZoomFactor = 2.0;

 

 [_videoDevice unlockForConfiguration];

위와 같이 videoZoomFactor를 통해 zoom수치를 설정할 수 있다.

1.0이 원래 배율, 2.0이 2배 확대


ps.  _videoDevice.activeFormat = [_videoDevice.formats lastObject];

이 문장을 안넣어주고 zoomFactor만 설정할 경우 out of range 에러가 난다....(iphone4에서만 그럼)

참고 : http://stackoverflow.com/questions/25125077/videozoomfactor-not-working-for-a-avcapturesession