2012-03-17 1 views
1

AVFoundation (AVCaptureStillImageOutput)을 사용하여 사용자 지정 iOS 카메라에서 사용자 지정 해상도를 설정하는 방법을 아는 사람이 있습니까?AVCaptureSession은 사용자 지정 해상도를 지정합니다

AVCaptureSession을 사용하여 사전 설정을 선택할 수 있지만 출력 해상도는 920x920 (사전 설정에서 제공하지 않음)이 필요합니다. 현재 나는 AVCaptureSessionPresetHigh를 사용하고 UIImage의 크기를 변경했지만 바보 같고 많은 불필요한 처리가 필요합니다.

+1

:
애플이 예는 최적의 프레임 속도를 선택하는 방법을 보여줍니다. 직접 크기를 조정 한 다음 대상 형식으로 인코딩해야합니다. –

답변

0

제 자신이 대답 한 저의 오래된 질문 중 하나를 확인하십시오. 도움이 될 수 있습니다.

Capture picture from video using AVFoundation

+0

고마워, 나는 그것을 이미 읽었지만 불행하게도 그것은 나를 돕지 않는다. 내가 원하는 해상도에 대한 사전 설정이 없습니다. – Dick

0

당신은 할 수 없습니다,하지만 당신이 할 수있는 당신의 해상도에 가까운 일을 찾는 모든 AVCaptureDeviceFormat의 반복이다. 사용 가능한 모든 형식의 전체 목록을 보려면 -formats 속성을 사용하여 캡처 장치에 쿼리하십시오. 내가 아는 한 사용자 지정 해상도로 캡처 할 수있는 방법이 없습니다

- (void)configureCameraForHighestFrameRate:(AVCaptureDevice *)device 
{ 
    AVCaptureDeviceFormat *bestFormat = nil; 
    AVFrameRateRange *bestFrameRateRange = nil; 
    for (AVCaptureDeviceFormat *format in [device formats]) { 
     for (AVFrameRateRange *range in format.videoSupportedFrameRateRanges) { 
      if (range.maxFrameRate > bestFrameRateRange.maxFrameRate) { 
       bestFormat = format; 
       bestFrameRateRange = range; 
      } 
     } 
    } 
    if (bestFormat) { 
     if ([device lockForConfiguration:NULL] == YES) { 
      device.activeFormat = bestFormat; 
      device.activeVideoMinFrameDuration = bestFrameRateRange.minFrameDuration; 
      device.activeVideoMaxFrameDuration = bestFrameRateRange.minFrameDuration; 
      [device unlockForConfiguration]; 
     } 
    } 
} 
+0

이 질문은 차원에 관한 것이지 프레임 속도에 관한 것이 아닙니다. – Emiswelt

+0

@Emiswelt 비율과 해상도가 연결되면 게시 된 스 니펫은 기기 형식을 가져 오는 방법 일뿐입니다. OP가 요구하는 것은 그가 맞춤형 해상도를 할 수 있고 대답이 '아니오'인 경우입니다. – Andrea

관련 문제