Обрезка предварительного просмотра AVCaptureSession

Я показываю предварительный просмотр видео окна захвата 320x320 и использую videoGravity, чтобы оно заполнило квадрат:

captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;

Затем я беру изображение фотографического качества из сеанса и обрезаю его, начиная с 0, 0. Моя проблема заключается в том, что сохраненное изображение показывает больше вверху (но не слева) кадра, чем в предварительном просмотре. Я хотел бы в основном видеть только верхнюю часть кадра, кажется, я вижу среднюю часть, надеюсь, я правильно объясняю.

Вот фрагмент кода, если поможет:

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session];
captureVideoPreviewLayer.frame = _cameraView.bounds;
[_cameraView.layer addSublayer:captureVideoPreviewLayer];
captureVideoPreviewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

Заранее благодарю за любую помощь.

Ваше здоровье.


person mrEmpty    schedule 04.06.2012    source источник
comment
О, я пытался captureVideoPreviewLayer.position=CGPointMake(CGRectGetMidX(_cameraView.bounds), 160); позиционировать его, но безуспешно, та же проблема.   -  person mrEmpty    schedule 04.06.2012


Ответы (1)


Я не мог понять, как это сделать, поэтому решил исправить это, изменив область обрезки вместо области предварительного просмотра.

person mrEmpty    schedule 05.06.2012