CIFilter filterWithCVPixelBuffer volver nula en iOS

Pregunta hecha: hace 8 meses Ultima actividad: hace 8 meses
up 0 down

Estoy tratando de crear un CIFilter usando filterWithCVPixelBuffer y se vuelve nula. Esto es lo que estoy tratando de hacer:

CFDictionaryRef options = CMCopyDictionaryOfAttachments(nil, photo.pixelBuffer, kCMAttachmentMode_ShouldPropagate);
CIFilter * ciFilter = [CIFilter filterWithCVPixelBuffer:photo.pixelBuffer properties:(__bridge NSDictionary*)options options:nil];

foto es una instancia de AVCapturePhoto dado al delegado. Estoy utilizando IOS 12 y ejecuta el código en iPhone7.

2 respuestas

up 1 down accepted

El problema era en las propiedades NSDictionary. Debería haber photo.metadata simplemente pasaron. Por lo que la llamada de función se vería así:

CIFilter * ciFilter = [CIFilter filterWithCVPixelBuffer:photo.pixelBuffer properties:photo.metedata options:nil];

Por supuesto, se puede pasar un NSDictionary que contiene el deseado CIRAWFilterOption(s).

up 0 down

Creo que he encontrado la respuesta en la documentación en el archivo de cabecera:

Devuelve una CIFilter que a su vez devolver un CIImage adecuadamente procesada como "outputImage".

Tenga en cuenta que cuando se utiliza este inicializador, debe pasar en un CVPixelBufferRef con uno de los siguientes tipos de formato de píxel Raw kCVPixelFormatType_14Bayer_GRBG, kCVPixelFormatType_14Bayer_RGGB, kCVPixelFormatType_14Bayer_BGGR, kCVPixelFormatType_14Bayer_GBRG, así como la fijación propiedades de la raíz de la CMSampleBufferRef.

Así que supongo que este método debe ser utilizado cuando se tiene una CMSampleBuffer y no es factible cuando viene de una AVCapturePhoto.