我想从iPhone相机数据中创建灰度CGImage。 我正在使用AVFoundation并将像素格式类型设置为
如果我理解正确,我应该能够从Y分量创建灰度图像,因此我已经实现了以下委托方法:
但我得到了像这样的奇怪图像:
有什么想法吗?
kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
如果我理解正确,我应该能够从Y分量创建灰度图像,因此我已经实现了以下委托方法:
func captureOutput(captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, fromConnection connection: AVCaptureConnection!) {
let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
CVPixelBufferLockBaseAddress(imageBuffer, 0)
let yPlanBufferAddress = CVPixelBufferGetBaseAddressOfPlane(imageBuffer, 0)
let width = CVPixelBufferGetWidth(imageBuffer)
let height = CVPixelBufferGetHeight(imageBuffer)
let data = NSData(bytes: yPlanBufferAddress, length: width * height)
let colorSpace = CGColorSpaceCreateDeviceGray()
let dataProvider = CGDataProviderCreateWithCFData(data)
let imageRef = CGImageCreate(width, height, 8, 8, width * 8, colorSpace, CGBitmapInfo.ByteOrderDefault, dataProvider, nil, false, kCGRenderingIntentDefault)
let img = UIImage(CGImage: imageRef)
CVPixelBufferUnlockBaseAddress(imageBuffer, 0)
delegate?.cameraController(self, didCreateImage: img)
}
但我得到了像这样的奇怪图像:
![在此输入图片描述](https://istack.dev59.com/TUmRh.webp)