CVPixelBufferRef到NSImage

问题描述:

如何将CVPixelBufferRef转换为NSImage或CGImageRef?我需要能够在核心动画层中显示像素缓冲区的内容。CVPixelBufferRef到NSImage

要将缓冲区转换为图像,需要先将缓冲区转换为CIImage,然后才能将其转换为NSImage

let ciImage = CIImage(cvImageBuffer: pixelBuffer) 

let context = CIContext(options: nil) 

从这里你可以去这两个GCImageNSImage

let width = CVPixelBufferGetWidth(pixelBuffer) 
let height = CVPixelBufferGetHeight(pixelBuffer) 

let cgImage = context.createCGImage(ciImage, from: CGRect(x: 0, y: 0, width: width, height: height)) 

let nsImage = NSImage(cgImage: cgImage, size: CGSize(width: width, height: height))