2012-04-25 5 views
6

Come posso convertire un CVPixelBufferRef in un NSImage o CGImageRef? Devo essere in grado di visualizzare il contenuto del buffer dei pixel in un Core Animation Layer.CVPixelBufferRef to NSImage

risposta

0

Per convertire il buffer in un'immagine, è necessario prima convertire il buffer in uno CIImage, che può quindi essere convertito in NSImage.

let ciImage = CIImage(cvImageBuffer: pixelBuffer) 

let context = CIContext(options: nil) 

Da qui si può andare a entrambi GCImage e 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))