iOS - Как захватить изображение: разрешение 3840x2160, используя GPUImageStillCamera?

Мне нужно захватить изображение с самым высоким разрешением, используя GPUImageStillCamera, я пробовал эти свойства, такие как: AVCaptureSessionPresetPhoto, AVCaptureSessionPreset1920x1080. Это дает мне немного хороший результат. Обратите внимание, что когда я записываю изображение, используя свойство AVCaptureSessionPresetPhoto вместо AVCaptureSessionPresetHigh, тогда оно (AVCaptureSessionPresetPhoto) дает лучший результат, чем AVCaptureSessionPresetHigh. Но когда я использую свойства AVCaptureSessionPreset3840x2160, значит:

videoCamera = [[GPUImageStillCamera alloc] initWithSessionPreset:AVCaptureSessionPreset3840x2160 cameraPosition:AVCaptureDevicePositionBack]; .

Мое приложение вылетает (даже в последней версии iPhone) и показывает это сообщение (я использую iPhone 5 S, версия:9.3.1, версия Xcode: 7.3)

Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "AVCaptureSessionPreset3840x2160 не поддерживается заранее.

Есть ли способ проверить, поддерживается ли конкретный AVCaptureSessionPreset на устройстве iOS? Я хочу установить разрешение AVCaptureSession, но я не знаю, как проверить, способно ли устройство захватывать кадры камеры с использованием выбранного разрешения. Короче говоря, мне нужно изображение самого высокого качества, самого большого размера для всех различных устройств iPhone. Любое предложение будет отличным. Спасибо, парни.

1 ответ

Ты можешь использовать AVCaptureSession"s sessionPreset свойство что-то вроде ниже,

  cameraSession.sessionPreset = AVCaptureSessionPresetHigh;

Тебе стоит попробовать AVCaptureSessionPresetHigh в вашем коде тоже.

Надеюсь, это поможет:)

Другие вопросы по тегам