Как создать UIIMage из шестнадцатеричных данных? - PullRequest
0 голосов
/ 02 июля 2010

Я использую XMPP, и XMPP выдаст мне данные фотографии, подобные следующим: a3f549fa9705e7ead2905de0b6a804227ecdd404

Итак, я предполагаю, что приведенные выше данные являются данными фотографии, и я предполагаю, что это данные Hex.(возможно я ошибаюсь)

Поэтому я использую следующее для создания UIImage, но это не работает, никто не знает, как это сделать?

Что я пытаюсь сделать, это изменитькоманда из шестнадцатеричной строки в 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];

1 Ответ

1 голос
/ 15 июля 2010

Строка имеет длину 40 символов и обязательно выглядит в шестнадцатеричном формате.Это составляет 160 бит информации.И это 160 напоминает мне о SHA-1, в соответствии с этим документом:

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

Итак, у вас есть контрольная сумма изображения, а не само изображение.Вам нужно прочитать документ, чтобы узнать, как получить все изображение.

...