Я использовал 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.
Заранее спасибо!