2010-03-30 5 views
0

Je reçois des images de UIGetScreenImage() et stocker directement dans le tableau mutable comme: -Pour stocker des images de UIGetScreenImage() dans NSMutable Tableau

image = [UIImage imageWithScreenContents]; 
[array addObject:image]; 
[image release]; 

J'ai mis ce code dans la minuterie, donc je ne peux pas utiliser UIImagePNGRepresentation() pour stocker en tant que NSData car il réduit les performances. Je veux utiliser ce tableau directement après un certain temps après avoir capturé 1000 images en 100 secondes. Lorsque j'utilise le code ci-dessous: -

UIImage *im = [[UIImage alloc] init]; 
im = [array objectAtIndex:i]; 
UIImageWriteToSavedPhotosAlbum(im, nil, nil, nil);** 

l'application se bloque. Et je ne veux pas utiliser UIImagePNG ou JPGRepresentation() dans le timer car cela réduit les performances.

Mon problème est de savoir comment utiliser ce tableau afin qu'il soit converti en image. Si quelqu'un a une idée liée à cela s'il vous plaît partager avec moi.

Répondre

1

Vous n'avez pas besoin de libérer l'image dans votre premier échantillon de code. [UIImage imageWithScreenContents] renvoie un objet autoreleased.

+0

Merci pour la réponse. [UIImage imageWithScreenContents] renvoie une image et dans cette fonction CGImageRef provient de UIGetScreenImage() et il est libéré. Donc, c'est pourquoi l'image est publiée im premier code. – sujyanarayan

1
1. UIImage *im = [[UIImage alloc] init]; 
2. im = [array objectAtIndex:i]; 
3. UIImageWriteToSavedPhotosAlbum(im, nil, nil, nil); 

Ligne 1 Répartir et initialise un nouvel objet UIImage qui n'est jamais libéré puisque vous écrasez le pointeur sur la ligne 2. Vous UIImage un dans une fuite de chaque itération, et vous ne même pas besoin de INIT/alloc un nouvel objet.

UIImageWriteToSavedPhotosAlbum([array objectAtIndex:i], nil, nil, nil); 

Cela devrait fonctionner correctement.

Notez également Carl Norum répondre à propos de la libération d'un objet autoreleased.

+0

Correct - je n'ai même pas lu pour voir ça. Cette erreur provoque une fuite de mémoire, pas le crash de l'OP, mais cela vaut la peine d'un upvote. +1 –

+0

UIImageWriteToSavedPhotosAlbum ([tableau objectAtIndex: i], nil, nil, nil); également des accidents. En fait, quel tableau contient? Est-il possible d'obtenir Image à partir de cette matrice - Das Sujyanarayan – sujyanarayan

Questions connexes