У меня есть CIImage с форматом kCVPixelFormatType_420YpCbCr8BiPlanarFullRange
(YCC420f
или N12
), теперь я хочу, чтобы увидеть, что изображение выглядит, так что я преобразовать его в UIImage использовать этот метод:Я хочу, чтобы преобразовать 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
, но не для NV12
, сообщение об ошибке в консоли:
Render failed because a pixel format YCC420f is not supported.
BTW, ciimage происходит от CVPixelBufferRef и CVPixelBufferRef происходит от адреса текстуры GL.
Теперь, что мне делать?
использование UIImage * uiImage = [[UIImage alloc] initWithCIImage: ciImage]; нет изображениеWithCGImage: – AleyRobotics
@Yuri такой же проблема. И CIImage-> CGImageRef-> UIImage лучше, imageWithCIImage может возвращать 'nil', при этом иногда не появляется сообщение об ошибке. –
Вид работ ios 7: UIImage * uiImage = [[UIImage alloc] initWithCIImage: ciImage]; – Adeel