char * в NSData для отображения в UIImageView - PullRequest
0 голосов
/ 18 декабря 2009

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

Спасибо ..

1 Ответ

2 голосов
/ 18 декабря 2009

Дано:

unsigned char *myImageData;
NSUInteger myImageDataLength;

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

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

Если ваши данные в кодировке 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
...