Skip to content

Instantly share code, notes, and snippets.

@btomtom5
Created May 25, 2018 17:37
Show Gist options
  • Select an option

  • Save btomtom5/2ba1d36261bf80bfe92775b1f98f6261 to your computer and use it in GitHub Desktop.

Select an option

Save btomtom5/2ba1d36261bf80bfe92775b1f98f6261 to your computer and use it in GitHub Desktop.
Convert UIImage from CVPIxelBuffer
func getImage(cvPixelBuffer: CVPixelBuffer) -> UIImage{
CVPixelBufferLockBaseAddress(cvPixelBuffer, CVPixelBufferLockFlags.readOnly)
let colorSpace:CGColorSpace = CGColorSpaceCreateDeviceGray()
let bitsPerComponent = 8 // Look at the quartz 2-D programming guide(Graphic Context)
let targetWidth = CVPixelBufferGetWidthOfPlane(cvPixelBuffer, 0)
let targetHeight = CVPixelBufferGetHeightOfPlane(cvPixelBuffer, 0)
let bytesPerRow = CVPixelBufferGetBytesPerRowOfPlane(cvPixelBuffer, 0)
let baseAddress = CVPixelBufferGetBaseAddressOfPlane(cvPixelBuffer, 0)
let context:CGContext? = CGContext(data: baseAddress, width: targetWidth, height: targetHeight,
bitsPerComponent: bitsPerComponent, bytesPerRow: bytesPerRow,
space: colorSpace, bitmapInfo: CGImageAlphaInfo.none.rawValue)
CVPixelBufferUnlockBaseAddress(cvPixelBuffer, CVPixelBufferLockFlags.readOnly)
if let cgImage: CGImage = context?.makeImage(){
return UIImage(cgImage: cgImage)
} else{
return UIImage()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment