8

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

4

1 回答 1

1

要将缓冲区转换为图像,您需要先将缓冲区转换为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))
于 2017-10-11T11:35:49.317 回答