Как отразить или перевернуть CVImageBuffer

#ios #swift #avfoundation #core-video

#iOS #swift #avfoundation #ядро-видео

Вопрос:

Я знаю, что зеркальное отображение может быть установлено во время настройки сеанса, но предположим, что это нежизнеспособно для данного конкретного проекта, можно ли это сделать эффективно, когда CVImageBuffer оно уже получено?

 // To set mirroring when setting up
let videoDataOutput = AVCaptureVideoDataOutput()
videoDataOutput.connection(with: .video)!.isVideoMirrored = true
videoDataOutput.connection(with: .video)!.videoOrientation = .landscapeLeft
  

Ответ №1:

Если ваш вопрос заключается просто в том, как перевернуть CVImageBuffer, то есть три варианта: вы можете использовать Metal, Core Image или Accelerate framework.

Основной образ, вероятно, предпочтительнее. Создайте CIContext и CIImage с буфером и используйте imageByApplyingTransform. Верните это результирующее изображение обратно в буфер изображения.