我正在尝试将CVPixelBuffer的大小调整为128x128。我正在使用一台750x750的。我目前正在使用CVPixelBuffer创建一个新的CGImage,我调整它的大小,然后将其转换回CVPixelBuffer。下面是我的代码:
func getImageFromSampleBuffer (buffer:CMSampleBuffer) -> UIImage? {
if let pixelBuffer = CMSampleBufferGetImageBuffer(buffer) {
let ciImage = CIImage(cvPixelBuffer: pixelBuffer)
let context = CIContext()
let imageRect = CGRect(x: 0, y: 0, width: 128, height: 128)
if let image = context.createCGImage(ciImage, from: imageRect) {
let t = CIImage(cgImage: image)
let new = t.applying(transformation)
context.render(new, to: pixelBuffer)
return UIImage(cgImage: image, scale: UIScreen.main.scale, orientation: .right)
}
}
return nil
}我还尝试过缩放CIImage,然后转换它:
let t = CIImage(cgImage: image)
let transformation = CGAffineTransform(scaleX: 1, y: 2)
let new = t.applying(transformation)
context.render(new, to: pixelBuffer)但这也不管用。
任何帮助都是非常感谢的。谢谢!
https://stackoverflow.com/questions/44509385
复制相似问题