2010-03-31 4 views
0

Je veux ajouter mon UIImage directement dans le fichier au lieu de convertir en UIImagePNGRepresentation ou UIImageJPGRepresentation (comme cela prend du temps) comme: -Pour ajouter UIImage directement le fichier

UIImage *im = [UIImage imageWithCGImage:ref]; 
[array addObject:im]; 
NSData *data = [array objectAtIndex:i]; 
[data writeToFile:path atomically:YES]; 

Mais il affiche l'erreur. Donc, il y a un moyen que je peux le faire. Merci d'avance.

Répondre

1

votre utilisation du array seulement obscurcit que vous faites essentiellement:

NSData *data = im; 

Ce qui ne peut pas travailler parce que peut-im est un UIImage, et non un NSData ni une sous-classe.

Ce que vous voulez faire est créer un nouveau NSData et l'initialiser avec le contenu de l'image. Depuis que vous avez un CGImageRef, je suggère de l'utiliser directement, sans utiliser un UIImage entre.

CGDataProviderRef imageDataProvider = CGImageGetDataProvider(ref); 
CFDataRef imageData = CGDataProviderCopyData(imageDataProvider); 
NSData *data = (NSData*) imageData; 

Notez qu'il est OK pour lancer le CFDataRef-NSData* parce CFData est « ponté sans frais » avec son homologue Fondation Cocoa, NSData.

J'espère que cela aide.

(ne pas oublier de sortir data lorsque vous avez terminé)

Questions connexes