[英]How to create CGImage from CVPixelBuffer?
我有一個簡單的 function 從CVPixelBuffer
CGImage
if let buffer = (results as? [VNPixelBufferObservation])?.first {
let pixelBuffer = buffer.pixelBuffer
let ciImage = CIImage(cvPixelBuffer: pixelBuffer)
let resultImage = UIImage(ciImage: ciImage)
return resultImage.cgImage //returns nil
}
但它返回零。 為什么?
output 為 nil,因為您正在使用 CIImage 而不是 CGImage 創建 UIImage 實例。 這是創建CGImage的一種方法:
func createCGImage(from pixelBuffer: CVPixelBuffer) -> CGImage? {
let ciContext = CIContext()
let ciImage = CIImage(cvImageBuffer: pixelBuffer)
return context.createCGImage(ciImage, from: ciImage.extent)
}
試試這個
import VideoToolbox
func createImage(from pixelBuffer: CVPixelBuffer) -> CGImage? {
var cgImage: CGImage?
VTCreateCGImageFromCVPixelBuffer(pixelBuffer, options: nil, imageOut: &cgImage)
return cgImage
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.