2012-04-25 20 views
6

¿Cómo puedo convertir un CVPixelBufferRef en un NSImage o CGImageRef? Necesito poder mostrar el contenido del buffer de píxeles en una capa de animación principal.CVPixelBufferRef a NSImage

Respuesta

0

Para convertir el búfer en una imagen, primero debe convertir el búfer en CIImage, que luego se puede convertir en NSImage.

let ciImage = CIImage(cvImageBuffer: pixelBuffer) 

let context = CIContext(options: nil) 

Desde aquí se puede ir a ambos GCImage y NSImage:

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)) 
Cuestiones relacionadas