我有一个格式为kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
(YCC420f
或N12
) 的 CIImage,现在我想看看图像是什么样的,所以我将其转换为 UIImage 使用此方法:
CIImage *ciImage = [CIImage imageWithCVPixelBuffer:new_buffer];
CIContext *temporaryContext = [CIContext contextWithOptions:nil];
CGImageRef videoImage = [temporaryContext
createCGImage:ciImage
fromRect:CGRectMake(0, 0,
CVPixelBufferGetWidth(new_buffer),
CVPixelBufferGetHeight(new_buffer))];
UIImage *uiImage = [UIImage imageWithCGImage:videoImage];
当图像的格式是BGRA
,但不是 for时NV12
,它可以正常工作,控制台中的错误消息:
Render failed because a pixel format YCC420f is not supported.
顺便说一句,ciimage 来自 CVPixelBufferRef,而 CVPixelBufferRef 来自 GL 纹理的地址。
现在,我该怎么办?