Я хочу преобразовать CIImage в UIImage, но не удалось
У меня есть CIImage с форматом kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
(YCC420f
или же N12
), теперь я хочу посмотреть, как выглядит изображение, поэтому я конвертирую его в 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
, но не для NV12
, сообщение об ошибке в консоли:
Render failed because a pixel format YCC420f is not supported.
Кстати, ciimage происходит от CVPixelBufferRef, а CVPixelBufferRef происходит от адреса текстуры GL.
Что мне теперь делать?
1 ответ
Просто простая строка кода (доступно из IOS 5.0)
UIImage * uiImage = [[UIImage alloc] initWithCIImage: ciImage];