Я пишу небольшое приложение для iOS, которое использует камеру. Я использую AVFoundation
Framework API и учитываю максимальное качество AVCaptureSessionPreset
. На моем конкретном устройстве те:
CaptureQualityPhoto = (640 852)
CaptureQualityHigh = (1088 1920)
CaptureQualityMedium = (368 480)
CaptureQuality1280x720 = (720 1280)
CaptureQuality640x480 = (480 640)
CaptureQualityiFrame960x540 = (540 960)
AVCaptureSessionPreset: почему стандартная камера для iPhone сохраняет 2448 × 3264, если максимальный пресет равен 1088x1920?
Стандартное приложение Камера сохраняет фотографии с разрешением 2448 × 3264
.
Скажите, что я хочу сохранить фотографии с тем же разрешением, но максимальное качество, которое я могу достичь, - 1088 x 1920
.
Конечно, я могу изменить размер UIImage
, но это лучший подход?
Имеет ли стандартный доступ к приложениям более высокое разрешение или просто использует некоторое масштабирование и интерполяцию?
Edit: Теперь мой рабочий код с 2248x3264 фото пресет выглядит следующим образом:
-(void) initCapturingDevice
{
[self releaseCapturingDevice];
self.capture_session = [[AVCaptureSession alloc] init];
[self.capture_session beginConfiguration];
self.video_data_output = [[AVCaptureVideoDataOutput alloc] init];
self.video_data_output.videoSettings = [NSDictionary dictionaryWithObject:[NSNumber numberWithInt:kCVPixelFormatType_32BGRA] forKey:(id)kCVPixelBufferPixelFormatTypeKey];
[self.video_data_output setSampleBufferDelegate:self queue:dispatch_get_main_queue()];
[self.capture_session addOutput:self.video_data_output];
self.capture_session.sessionPreset = AVCaptureSessionPresetPhoto;
// some code here ...
}