Skip to content

Instantly share code, notes, and snippets.

@lfarah
Created April 29, 2018 01:47
Show Gist options
  • Save lfarah/7629f775c7e60b792a95e0f7ee8b3bd1 to your computer and use it in GitHub Desktop.
Save lfarah/7629f775c7e60b792a95e0f7ee8b3bd1 to your computer and use it in GitHub Desktop.
extension ViewController: AVCaptureVideoDataOutputSampleBufferDelegate {
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!)
{
//let filter:CIFilter? = CIFilter(name: "CISourceOverCompositing")
let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
let cameraImage = CIImage(cvPixelBuffer: pixelBuffer!)
connection.videoOrientation = .portrait
// filter!.setValue(cameraImage, forKey: kCIInputBackgroundImageKey)
// let image = UIImage(named: "newmusic_03 copy 2.png")?.cgImage
// // let immg = UIImage(cgImage: image!, scale: 10, orientation: UIImageOrientation.left).cgImage
//
// let imageci = CIImage(cgImage: image!)
//
// filter?.setValue(imageci, forKey: kCIInputImageKey)
//
// let filteredImage = UIImage(ciImage: filter!.value(forKey: kCIOutputImageKey) as! CIImage!)
let image = UIImage(cgImage: convertCIImageToCGImage(inputImage: cameraImage), scale: 1.0, orientation: .upMirrored)
let ci = CIImage(image: image)
DispatchQueue.main.async
{
self.imageView.image = UIImage(ciImage: ci!)
}
}
func convertCIImageToCGImage(inputImage: CIImage) -> CGImage! {
let context = CIContext(options: nil)
return context.createCGImage(inputImage, from: inputImage.extent)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment