char *到NSData以在UIImageView中显示

时间:2009-12-18 06:44:10

标签: iphone sdk uiimage char nsdata

我以char *的形式获取图像数据(存储在sql server上)。我想将这些数据转换为NSData以在UIImage视图中显示图像。 char * data是源图像的bytearray。 如何将char *转换为NSData以显示以获取在UIImageView中显示的UIImage实例?

谢谢..

1 个答案:

答案 0 :(得分:2)

假设:

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