无效的上下文0x0 CGContextDrawImage

时间:2013-04-26 18:28:01

标签: ios objective-c ios6

在运行以下代码块之后,我得到CGContextDrawImage的无效上下文0x0。此代码位于UIViewController中的用户定义方法中。我基本上使用AVFoundation捕获静止图像的图像,然后拍摄该图像以读取像素十六进制数据值。以下是我写的代码:

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);

为什么我为CGContextDrawImage获取无效的上下文0x0?

1 个答案:

答案 0 :(得分:2)

CGBitmapContextCreate如果无法创建请求的上下文,则返回NULLCGContextDrawImage基本上抱怨contextNULL