2010-12-14 10 views
5

Ho un problema con la creazione di un CGBitmapContext.iPhone non può creare CGBitmapContext

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

Quando eseguo la mia applicazione normalmente funziona. Ma quando l'eseguo nel mio 'applicazione Test' (un'applicazione in esecuzione che eseguirà i miei test) il contesto viene registrato come (null) e ottengo i seguenti errori:

<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 

La mia applicazione non va in crash. Ma a quanto pare c'è qualcosa di sbagliato. (So ​​che gli errori vengono creati chiamando quei metodi con un contesto nullo).

risposta

7

Questo errore si verifica spesso quando la dimensione della bitmap che si sta tentando di creare è CGSizeZero. Controlla il valore reale di imageSize.

Inoltre, si perde il CGColorSpaceRef che si passa alla funzione.

0

Si controlla che il valore di ritorno di CGBitmapContextCreate sia diverso da zero? Otterrai un valore nullo se non c'è abbastanza memoria disponibile sul dispositivo per creare il contesto.

Quanta memoria stai utilizzando nell'app e per quale dimensione bitmap stai chiedendo?

Problemi correlati