【笔记】Swift的CMSampleBuffer转UIImage

前言

Swift的CMSampleBuffer转UIImage

方法一

1
2
3
4
5
6
7
8
func WM_FUNC_sampleBufferToImage(_ sampleBuffer:CMSampleBuffer) -> UIImage {
let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!
let ciimage = CIImage(cvPixelBuffer: imageBuffer)
let context = CIContext(options: nil)
let cgImage = context.createCGImage(ciimage, from: ciimage.extent)!
let image = UIImage(cgImage: cgImage)
return image;
}

方法二

  • 编写extension
1
2
3
4
5
6
7
8
9
extension CMSampleBuffer {
func image(orientation: UIImage.Orientation = .up, scale: CGFloat = 1.0) -> UIImage? {
if let buffer = CMSampleBufferGetImageBuffer(self) {
let ciImage = CIImage(cvPixelBuffer: buffer)
return UIImage(ciImage: ciImage, scale: scale, orientation: orientation)
}
return nil
}
}
  • 调用
1
sampleBuffer.image()

完成

参考文献

CSDN——WMSmile