char * в NSData для отображения в UIImageView

Я получаю данные изображения в виде char * (хранятся на сервере sql). Я хочу преобразовать эти данные в NSData для отображения изображения в представлении UIImage. char * data — массив байтов для исходного изображения. как я могу преобразовать char * в NSData для отображения, чтобы получить экземпляр UIImage для отображения в UIImageView?

Спасибо..


person xmax    schedule 18.12.2009    source источник


Ответы (1)


Данный:

unsigned char *myImageData;
NSUInteger myImageDataLength;

Где myImageData — это изображение в формате JPEG, PNG или другом формате, поддерживаемом UIImage, используйте:

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

Если ваши данные char закодированы в Base64, проверьте http://www.cocoadev.com/index.pl?BaseSixtyFour.

Я сделал это как с данными из веб-службы, так и с запеканием изображения. Например:

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

Длина — это размер файла изображения, а шестнадцатеричные значения могут быть созданы из файла изображения с помощью:

hexdump -e ' 16/1 "0x%02x, " "\n"' MyImage.png
person John Franklin    schedule 18.12.2009