Я использовал CGImageCreate с CGColorSpaceCreateDeviceGray для преобразования буфера (CVPixelBufferRef) в изображение в градациях серого. Это было очень быстро и хорошо работало до iOS 12... теперь возвращаемое изображение пустое.
Код выглядит так:
bitmapInfo = kCGBitmapByteOrder32Little | kCGImageAlphaNoneSkipFirst;
CGDataProviderRef provider = CGDataProviderCreateWithData((void *)i_PixelBuffer,
sourceBaseAddr,
sourceRowBytes * height,
ReleaseCVPixelBuffer);
retImage = CGImageCreate(width,
height,
8,
32,
sourceRowBytes,
CGColorSpaceCreateDeviceGray(),
bitmapInfo,
provider,
NULL,
true,
kCGRenderingIntentDefault);
CGDataProviderRelease(provider);
Это известная ошибка в iOS 12? Если эта функция больше не поддерживает серый цвет устройства, можете ли вы предложить мне другой способ сделать это?
Обратите внимание, что преобразование должно занять менее 0,1 секунды для изображения 4K.
Заранее спасибо!