1

在运行以下代码块后,我得到了 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?

4

1 回答 1

2

NULL如果无法创建请求的上下文,则CGBitmapContextCreate返回。CGContextDrawImage本质上是在抱怨context存在NULL

于 2013-04-26T18:31:55.837 回答