2010-12-14 1 views
5

Ich habe ein Problem mit dem Erstellen eines CGBitmapContext.iPhone kann CGBitmapContext nicht erstellen

CGContextRef bitmapContext = CGBitmapContextCreate(nil, imageSize.width, imageSize.height, 8, imageSize.width * 4, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst) 

Wenn ich meine Anwendung normalerweise ausführen, funktioniert es. Aber wenn ich es in meinem ‚Test-Anwendung‘ laufen (eine laufende Anwendung, die meine Tests durchführen wird) wird der Kontext als (null) angemeldet und ich erhalte die folgenden Fehler:

<Error>: CGContextSetFillColorWithColor: invalid context 0x0 
<Error>: CGContextFillRects: invalid context 0x0 
<Error>: CGContextDrawImage: invalid context 0x0 
<Error>: CGContextDrawImage: invalid context 0x0 
<Error>: CGBitmapContextCreateImage: invalid context 0x0 

Meine Anwendung nicht abstürzt. Aber anscheinend stimmt etwas nicht. (Ich weiß, dass die Fehler durch den Aufruf dieser Methoden mit einem Nullkontext erzeugt werden).

Antwort

7

Dieser Fehler tritt häufig auf, wenn die Größe der Bitmap, die Sie erstellen möchten, CGSizeZero ist. Überprüfen Sie den tatsächlichen Wert von imageSize.

Außerdem verlieren Sie die CGColorSpaceRef, die Sie in die Funktion übergeben.

0

Überprüfen Sie, ob der CGBitmapContextCreate-Rückgabewert nicht-null ist? Sie erhalten einen Nullwert, wenn auf dem Gerät nicht genügend Speicher verfügbar ist, um den Kontext zu erstellen.

Wie viel Speicher verwenden Sie in der App und für welche Größe Bitmap fragen Sie?