2010-07-01 12 views
0

J'utilise XMPP et XMPP me donnera des données de photo comme ce qui suit: a3f549fa9705e7ead2905de0b6a804227ecdd404Comment créer UIIMage à partir de données hexadécimales?

donc je suppose que les données ci-dessus sont les données de photo et je suppose que ses données Hex. (peut-être que je me trompe)

Donc, je utilise ce qui suit pour créer l'UIImage, mais cela ne fonctionne pas quelqu'un sait comment le faire? Ce que j'essaye de faire est de changer la commande de chaîne hexagonale en NSData.

NSString* command = @"a3f549fa9705e7ead2905de0b6a804227ecdd404"; 
command = [command stringByReplacingOccurrencesOfString:@" " withString:@""]; 
NSMutableData *commandToSend= [[NSMutableData alloc] init]; 
unsigned char whole_byte; 
char byte_chars[3] = {'\0','\0','\0'}; 
int i; 
for (i=0; i < [command length]/2; i++) { 
    byte_chars[0] = [command characterAtIndex:i*2]; 
    byte_chars[1] = [command characterAtIndex:i*2+1]; 
    whole_byte = strtol(byte_chars, NULL, 16); 
    [commandToSend appendBytes:&whole_byte length:1]; 
} 

UIImage *image = [UIImage imageWithData: commandToSend]; 

Répondre

1

La chaîne a une longueur de 40 caractères et semble avoir un code hexadécimal. Cela fait 160 bits d'information. Et cela me rappelle 160 de SHA-1, conformément à ce document:

http://xmpp.org/extensions/xep-0153.html

donc ce que vous avez ici est la somme de contrôle d'une image, pas l'image elle-même. Vous devez lire le document pour savoir comment obtenir l'image entière.