Custom camera view with UIImage as new overlay

Viewed 169

I want to make a custom cameraView overlay. I want to use the overlay which is an image as a template. But the rect of clear space will change depends on phone.

Template:

enter image description here

I tried to create a view as container behind image. But the image that got captured will include the part that I dont want

    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

The expected result is that the white space would be the custom camera view. also it seems that AVCaptureStillImageOutput was deprecated in iOS 10.0

0 Answers
Related