AVCaptureVideoPreviewLayer добавить наложения и захватить фотографию в iOS - PullRequest
0 голосов
/ 08 апреля 2019

Первоначальная идея состояла в том, чтобы запустить поток камеры с помощью AVCaptureSession, найти лица в этом необработанном CMSampleBuffer, а затем добавить несколько изображений в виде слоев на AVCaptureVideoPreviewLayer, а затем сделать снимок экрана.

После завершенияпозже выяснилось, что UIGraphicsGetImageFromCurrentImageContext не будет работать с AVCaptureVideoPreviewLayer, поэтому снятие скриншота не решило бы мою задачу здесь.

Так что вместо этого я использовал Metal и MTKView, чтобы выполнить несколько живых выступлений.рендеринг и результаты хороши с комбинацией CoreImage Filters и Metal.Я уже знаю, как определять лица и изменять эту часть лица, используя встроенные фильтры CoreImage, но я не могу найти подходящий метод для добавления изображения к другому изображению.

Как я могу смешать два изображения относительно расположения на фоновом изображении?У меня есть CIImage для работы.

1 Ответ

2 голосов
/ 08 апреля 2019

Вы можете загрузить свое наложение в CIImage, затем использовать transformed(by matrix: CGAffineTransform), чтобы переместить его в положение лица, и, наконец, использовать composited(over dest: CIImage), чтобы смешать его над CIImage из видеобуфера.Возможно, вам придется проделать некоторую работу по переносу между различными координатными пространствами.

Также доступно множество более сложных фильтров композитинга.Проверьте фильтры в категории CICategoryCompositeOperation.

...