Guest User

Untitled

a guest
Aug 19th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.67 KB | None | 0 0
  1. let context = CIContext()
  2. let context = CIContext(eaglContext: EAGLContext(api: .openGLES3)!)
  3. let context = CIContext(mtlDevice: MTLCreateSystemDefaultDevice()!)
  4.  
  5. let context = CIContext()
  6.  
  7. func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
  8. connection.videoOrientation = orientation
  9. connection.isVideoMirrored = !cameraModeIsBack
  10. let videoOutput = AVCaptureVideoDataOutput()
  11. videoOutput.setSampleBufferDelegate(self, queue: DispatchQueue.main)
  12.  
  13. let sharpenFilter = CIFilter(name: "CISharpenLuminance")
  14. let saturationFilter = CIFilter(name: "CIColorControls")
  15. let contrastFilter = CIFilter(name: "CIColorControls")
  16. let pixellateFilter = CIFilter(name: "CIPixellate")
  17.  
  18. let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
  19. var cameraImage = CIImage(cvImageBuffer: pixelBuffer!)
  20.  
  21. saturationFilter?.setValue(cameraImage, forKey: kCIInputImageKey)
  22. saturationFilter?.setValue(saturationValue, forKey: "inputSaturation")
  23. var cgImage = context.createCGImage((saturationFilter?.outputImage!)!, from: cameraImage.extent)!
  24. cameraImage = CIImage(cgImage: cgImage)
  25.  
  26. sharpenFilter?.setValue(cameraImage, forKey: kCIInputImageKey)
  27. sharpenFilter?.setValue(sharpnessValue, forKey: kCIInputSharpnessKey)
  28. cgImage = context.createCGImage((sharpenFilter?.outputImage!)!, from: (cameraImage.extent))!
  29. cameraImage = CIImage(cgImage: cgImage)
  30.  
  31. contrastFilter?.setValue(cameraImage, forKey: "inputImage")
  32. contrastFilter?.setValue(contrastValue, forKey: "inputContrast")
  33. cgImage = context.createCGImage((contrastFilter?.outputImage!)!, from: (cameraImage.extent))!
  34. cameraImage = CIImage(cgImage: cgImage)
  35.  
  36. pixellateFilter?.setValue(cameraImage, forKey: kCIInputImageKey)
  37. pixellateFilter?.setValue(pixelateValue, forKey: kCIInputScaleKey)
  38. cgImage = context.createCGImage((pixellateFilter?.outputImage!)!, from: (cameraImage.extent))!
  39. applyChanges(image: cgImage)
  40.  
  41. }
  42.  
  43. func imagePixelate(sliderValue: CGFloat){
  44. let cgImg = image?.cgImage
  45. let ciImg = CIImage(cgImage: cgImg!)
  46. let pixellateFilter = CIFilter(name: "CIPixellate")
  47. pixellateFilter?.setValue(ciImg, forKey: kCIInputImageKey)
  48. pixellateFilter?.setValue(sliderValue, forKey: kCIInputScaleKey)
  49. let outputCIImg = pixellateFilter?.outputImage!
  50. let outputCGImg = context.createCGImage(outputCIImg!, from: (outputCIImg?.extent)!)
  51. let outputUIImg = UIImage(cgImage:outputCGImg!, scale:(originalImage?.scale)!, orientation: originalOrientation!)
  52. imageSource[0] = ImageSource(image: outputUIImg)
  53. slideshow.setImageInputs(imageSource)
  54. currentFilteredImage = outputUIImg
  55. }
Add Comment
Please, Sign In to add comment