Swift pixelbuffer cicontext.render has a black background, how to make it transparent?

Viewed 387

When I use func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!), I need to add a transparent image to the sampleBuffer, but I always get a black background, code is here:

let pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
CVPixelBufferLockBaseAddress(pixelBuffer!, CVPixelBufferLockFlags(rawValue: 0))
let eagleContext = EAGLContext(api: .openGLES3)
let ciContex = CIContext.init(eaglContext: eagleContext!, options: [kCIContextWorkingColorSpace:NSNull()])
let filterdImage = CIImage(cgImage: #imageLiteral(resourceName: "att_id").cgImage!)
let colorSpace = CGColorSpaceCreateDeviceRGB()
ciContex.render(filterdImage, to: pixelBuffer!, bounds: filterdImage.extent, colorSpace: colorSpace)
CVPixelBufferUnlockBaseAddress(pixelBuffer!, CVPixelBufferLockFlags(rawValue: 0))
videoWriterInput.append(sampleBuffer)

I want to know how can I get the background clear color.

0 Answers
Related