2009-12-18 4 views
0

Je reçois des données d'image sous la forme de char * (stocké sur le serveur sql). Je veux convertir ces données en NSData pour afficher l'image dans la vue UIImage. char * data est un bytearray pour l'image source. comment puis-je convertir char * en NSData à afficher pour obtenir une instance UIImage pour afficher dans UIImageView?char * à NSData à afficher dans UIImageView

Merci ..

Répondre

2

Vu:

unsigned char *myImageData; 
NSUInteger myImageDataLength; 

myImageData est l'image au format JPEG, PNG ou un autre format pris en charge UIImage, utilisez:

-(UIImage*)myImage { 
    return [UIImage imageWithData:[NSData dataWithBytes:myImageData length:myImageDataLength]]; 
} 

Si vos données char est Base64 codé, consultez http://www.cocoadev.com/index.pl?BaseSixtyFour.

Je l'ai fait à la fois avec les données d'un service Web et pour faire une image. Par exemple:

// Note hex = ".PNG..", the start of the PNG header. 
static unsigned char myImageData[] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a,... }; 

La longueur est la taille du fichier image et les valeurs hexagonales peuvent être créées à partir du fichier image avec:

hexdump -e ' 16/1 "0x%02x, " "\n"' MyImage.png 
+0

Ce ne fonctionne pas pour moi ... – DivineDesert