2012-04-25 10 views
6

Jak przekonwertować CVPixelBufferRef na NSImage lub CGImageRef? Muszę być w stanie wyświetlić zawartość bufora pikseli w warstwie Core Animation.CVPixelBufferRef to NSImage

Odpowiedz

0

Aby przekonwertować bufor na obraz, należy najpierw przekonwertować bufor na CIImage, który następnie można przekonwertować na NSImage.

let ciImage = CIImage(cvImageBuffer: pixelBuffer) 

let context = CIContext(options: nil) 

Stąd można przejść zarówno GCImage i 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))