Пользовательский вид камеры с UIImage в качестве нового наложения - PullRequest
2 голосов
/ 24 октября 2019

Я хочу сделать пользовательский оверлей CameraView. Я хочу использовать наложение, которое является изображением в качестве шаблона. Но прямоугольник свободного пространства будет меняться в зависимости от телефона.

Шаблон:

enter image description here

Я пытался создать представление в качестве контейнера позадиобраз. Но полученное изображение будет включать в себя ту часть, которую я не хочу

    self.session = AVCaptureSession()
    self.session!.sessionPreset = AVCaptureSession.Preset.photo

    let backCamera = AVCaptureDevice.default(for: AVMediaType.video)
    var error: NSError?
    var input: AVCaptureDeviceInput!

    do {
        input = try AVCaptureDeviceInput(device: backCamera!)
    } catch let error1 as NSError {
        error = error1
        input = nil
        print(error!.localizedDescription)
    }

    if error == nil && session!.canAddInput(input) {
        session!.addInput(input)
        stillImageOutput = AVCaptureStillImageOutput()
        stillImageOutput?.outputSettings = [AVVideoCodecKey:  AVVideoCodecJPEG]
        if session!.canAddOutput(stillImageOutput!) {
            session!.addOutput(stillImageOutput!)
            videoPreviewLayer = AVCaptureVideoPreviewLayer(session: self.session!)
            videoPreviewLayer!.videoGravity = AVLayerVideoGravity.resizeAspect
            videoPreviewLayer!.connection?.videoOrientation =   AVCaptureVideoOrientation.portrait
            previewView.layer.addSublayer(videoPreviewLayer!)
            session!.startRunning()
       }
    }
    //inviewdidload

    videoPreviewLayer!.frame = previewView.bounds//previewView is uiview behind image

Ожидаемый результат состоит в том, что пустое пространство будет пользовательским видом камеры. также кажется, что AVCaptureStillImageOutput устарела в iOS 10.0

...