Захват изображения, существующего в слое предварительного просмотра видео

Я хотел бы захватить только изображение в слое предварительного просмотра видео. В настоящее время я установил это так:

[self setCaptureManager:[[[CaptureSessionManager alloc] init] autorelease]];
[[self captureManager] addVideoInputFrontCamera:YES]; // set to YES for Front Camera, No for Back camera
[[self captureManager] addStillImageOutput];

[[self captureManager] addVideoPreviewLayer];
CGRect layerRect = [[[self view] layer] bounds];
[[[self captureManager] previewLayer] setBounds:CGRectMake(0, 0, 320, 400)];//was layerRect
[[[self captureManager] previewLayer] setPosition:CGPointMake(CGRectGetMidX(layerRect),CGRectGetMidY(layerRect))];// was CGPointMake(CGRectGetMidX(layerRect),CGRectGetMidY(layerRect))

[[[self view] layer] addSublayer:[[self captureManager] previewLayer]];

В нынешнем виде слой предварительного просмотра представляет то, что я хочу запечатлеть, но камера также захватывает все, что находится за этими пределами. Я не могу сделать снимок и потом обрезать его, потому что изображение не ориентировано вверх, поэтому CGImageRef не работает. Есть ли способ захватить только то, что находится в слое предварительного просмотра?


person cph2117    schedule 25.05.2014    source источник


Ответы (1)


Это не то, что должен делать слой предварительного просмотра. Если вам нужно сделать снимок, вы должны использовать StillImageOutput или буфер данных. В зависимости от того, как вы снимаете образцы, вы должны позаботиться об ориентации камеры и ориентации устройства. Ориентация изображений jpg сохраняется в словаре метаданных под названием EXIF.
У Apple есть разные образцы код, показывающий, как делать захват неподвижного изображения. Вот также сообщение в блоге, которое я написал об ориентации EXIF.

person Andrea    schedule 25.05.2014
comment
Извините, если я неясно выразился... Я использую вывод неподвижного изображения для захвата изображения, но я разделил управление сеансом захвата и наложение на два отдельных класса. - person cph2117; 25.05.2014