Проблема
Я пытаюсь преобразовать входной видеосигнал из iphone в UIImage, однако он выглядит полностью белым.
Дополнительная информация
В приведенном ниже коде я удалил все ненужные коды, поэтому может показаться немного странным.
версия xcode 11.4
Код
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var previewView: UIView!
private var videoCapture: VideoCapture!
var currentCameraType: CameraType = .front(true)
private let serialQueue = DispatchQueue(label: "")
private var videoImage: CIImage?
override func viewDidLoad() {
super.viewDidLoad()
videoCapture = VideoCapture(cameraType: currentCameraType,
preferredSpec: nil,
previewContainer: previewView.layer)
videoCapture.syncedDataBufferHandler = { [weak self] videoPixelBuffer, depthData, face in
guard let self = self else { return }
self.videoImage = CIImage(cvPixelBuffer: videoPixelBuffer)
DispatchQueue.main.sync {
let image = self.previewView.getCaptureImageFromView() // using the function
self.imageView.image = image //appears to be white, should be video Image
}
}
videoCapture.setDepthFilterEnabled(filterSwitch.isOn)
}
extension UIView {
func getCaptureImageFromView() -> UIImage? {
let contextSize = self.frame.size
UIGraphicsBeginImageContextWithOptions(contextSize, false, 0.0)
self.drawHierarchy(in: self.bounds, afterScreenUpdates: false)
let captureImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return captureImage
}
}