Wie konvertiere ich von YUV nach CIImage für iOS

Ich versuche, ein YUV-Image in CIIMage und letztendlich in UIImage zu konvertieren. Ich bin ziemlich unerfahren und versuche, einen einfachen Weg zu finden, um es zu tun. Nach dem, was ich gelernt habe, kann YUV mit iOS6 direkt zum Erstellen von CIImage verwendet werden, aber während ich versuche, es zu erstellen, enthält CIImage nur einen Nullwert. Mein Code ist wie folgt ->

NSLog(@"Started DrawVideoFrame\n");

CVPixelBufferRef pixelBuffer = NULL;

CVReturn ret = CVPixelBufferCreateWithBytes(
                                            kCFAllocatorDefault, iWidth, iHeight, kCVPixelFormatType_420YpCbCr8BiPlanarFullRange,
                                            lpData, bytesPerRow, 0, 0, 0, &pixelBuffer
                                            );

if(ret != kCVReturnSuccess)
{
    NSLog(@"CVPixelBufferRelease Failed");
    CVPixelBufferRelease(pixelBuffer);
}

NSDictionary *opt =  @{ (id)kCVPixelBufferPixelFormatTypeKey :
                      @(kCVPixelFormatType_420YpCbCr8BiPlanarFullRange) };

CIImage *cimage = [CIImage imageWithCVPixelBuffer:pixelBuffer options:opt];
NSLog(@"CURRENT CIImage -> %p\n", cimage);

UIImage *image = [UIImage imageWithCIImage:cimage scale:1.0 orientation:UIImageOrientationUp];
NSLog(@"CURRENT UIImage -> %p\n", image);

Hier sind die lpData die YUV-Daten, die ein Array von vorzeichenlosen Zeichen sind.

Das sieht auch interessant aus: vImageMatrixMultiply, kann kein Beispiel dazu finden. Kann mir jemand dabei helfen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage