Cette question est liée à Iphone SDK, NSData et UIImage.Comment créer UIImage à partir de données NSData et Avatar de XMPP?
Je suis en train de créer une image à partir des données Avatar est revenu de la XMPP comme ce qui suit:
<presence from='[email protected]/spark' to='[email protected]/424978324712783686768453' id='Oj02v-45'><status>Away due to idle.</status><priority>0</priority><show>away</show><x xmlns='vcard-temp:x:update'><photo>a3f549fa9705e7ead2905de0b6a804227ecdd404</photo></x><x xmlns='jabber:x:avatar'><hash>a3f549fa9705e7ead2905de0b6a804227ecdd404</hash></x></presence>
Donc dans ce cas, je suppose que a3f549fa9705e7ead2905de0b6a804227ecdd404 est les données de photos. Alors Comment puis-je transférer ceci dans NSData?
Je pense que si je peux obtenir l'objet NSData, je peux facilement créer le UIImage, non?
Je pense que "a3f549fa9705e7ead2905de0b6a804227ecdd404" est les données photo ceci est mon code:
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];
Cependant, il ne fonctionne pas. Quelqu'un sait ce qui ne va pas?
VEUILLEZ mettre en cache les données de la photo ou de la vcard entre les exécutions. Si vous demandez à nouveau toutes les vCard de vos amis à chaque connexion, vous déclenchez les protections de déni de service sur de nombreux serveurs. –