2010-12-14 26 views
5

J'ai un problème avec la création d'un CGBitmapContext.L'iPhone ne peut pas créer CGBitmapContext

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

Lorsque je lance normalement mon application, cela fonctionne. Mais quand je le lance dans mon « application Test » (une application en cours d'exécution qui exécutera mes tests) le contexte est enregistré comme (null) et je reçois les erreurs suivantes:

<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 

Ma demande ne tombe pas en panne. Mais apparemment, il y a quelque chose qui ne va pas. (Je sais que les erreurs sont créées en appelant ces méthodes avec un contexte nul).

Répondre

7

Cette erreur apparaît souvent lorsque la taille du bitmap que vous essayez de créer est CGSizeZero. Vérifiez la valeur réelle de imageSize. En outre, vous faites couler le CGColorSpaceRef que vous transmettez dans la fonction.

0

Vérifiez-vous que la valeur de retour CGBitmapContextCreate est non nulle? Vous obtiendrez une valeur nulle s'il n'y a pas assez de mémoire disponible sur l'appareil pour créer le contexte.

Combien de mémoire utilisez-vous dans l'application et pour quelle taille bitmap demandez-vous?