После некоторых прогонов следующего блока кода я получаю недопустимый контекст 0x0 для CGContextDrawImage. Этот код находится в пользовательском методе в UIViewController. Я по существу захватываю изображение от взятия неподвижного изображения с помощью AVFoundation и беру это изображение для считывания значения пиксельных шестнадцатеричных данных. Ниже приведен код, который я написал:Недопустимый контекст 0x0 CGContextDrawImage
AVCaptureConnection *videoConnection = nil;
for (AVCaptureConnection *connection in stillImageOutput.connections)
{
for (AVCaptureInputPort *port in [connection inputPorts])
{
if ([[port mediaType] isEqual:AVMediaTypeVideo])
{
videoConnection = connection;
break;
}
}
if (videoConnection) { break; }
}
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler: ^(CMSampleBufferRef imageSampleBuffer, NSError *error)
{
CFDictionaryRef exifAttachments = CMGetAttachment(imageSampleBuffer, kCGImagePropertyExifDictionary, NULL);
NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];
image2 = [[UIImage alloc] initWithData:imageData];
}];
CGImageRef imageRef = [image CGImage];
CGContextRef context = CGBitmapContextCreate(rawData, width, height,bitsPerComponent,bytesPerRow, colorSpace,kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGColorSpaceRelease(colorSpace);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
Почему я получаю недопустимый контекст 0x0 для CGContextDrawImage?
Как я могу сделать это не NULL? Как есть способ заставить CGBitmapContextCreate всегда возвращать допустимый контекст? – David
Один или несколько параметров, которые передаются, не должны быть правильными. В документации на самом деле не говорится, что искать, если он возвращает «NULL», просто чтобы он не смог создать контекст. Я бы сказал, установить точку останова на этой строке и посмотреть, что параметры соответствуют сравнению с тем, что вы ожидаете. –
Похоже, что изображение2 недопустимо. Почему это вызывает проблему? – David