1

次のコード ブロックを数回実行した後、CGContextDrawImage の無効なコンテキスト 0x0 を取得します。このコードは、UIViewController 内のユーザー定義メソッドにあります。私は基本的に AVFoundation を使用して静止画像を撮影して画像をキャプチャし、その画像を取得してピクセルの 16 進データ値を読み取ります。以下は私が書いたコードです:

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

CGBitmapContextCreateNULLは、要求されたコンテキストを作成できない場合に戻ります。CGContextDrawImageであることに本質的に不平を言ってcontextNULLます。

于 2013-04-26T18:31:55.837 に答える