Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AdibContractorCC/c1f1d16fcfcf601ec7c69b482d3bbe33 to your computer and use it in GitHub Desktop.
Save AdibContractorCC/c1f1d16fcfcf601ec7c69b482d3bbe33 to your computer and use it in GitHub Desktop.
Save our mad hattery to photos library
extension LiveCaptureHattingViewController {
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?)
{
takeScreenShot()
}
func takeScreenShot()
{
guard let currentPixelBuffer = currentPixelBuffer else {
return
}
let frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height)
let photoView = UIView(frame: frame)
let imageView = UIImageView(frame: frame)
imageView.image = imageFromBuffer(buffer: currentPixelBuffer)
imageView.contentMode = UIViewContentMode.scaleAspectFill
photoView.addSubview(imageView)
hats.forEach{ photoView.addSubview($0) }
UIGraphicsBeginImageContext(photoView.frame.size)
photoView.layer.render(in: UIGraphicsGetCurrentContext()!)
let imageRef = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
UIImageWriteToSavedPhotosAlbum(imageRef!, nil, nil, nil)
}
private func imageFromBuffer(buffer: CMSampleBuffer) -> UIImage?
{
guard let imageBuffer = CMSampleBufferGetImageBuffer(buffer) else { return nil }
let ciImage = CIImage(cvPixelBuffer: imageBuffer)
guard let cgImage = CIContext().createCGImage(ciImage, from: ciImage.extent) else { return nil }
return UIImage(cgImage: cgImage)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment