在xcode中将字节数组转换为图像?

时间:2012-11-24 11:05:28

标签: iphone xcode uiimage

我在NSMutableArray's对象中得到一个字节数组(我估计)。NSMutableArray我得到的是Xml从服务URL解析..现在我需要转换那个字节数组到UIImage ..通过谷歌,发现转换为NSData,然后UIImage,但无法理解如何..?我该怎么办?

我的数组看起来像这样:

(
{
        Name = "John";
        Image = "/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJS
kcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gODAK/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXF
BYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgEKwZAAwEiAAIRAQMRAf/........
 //big byte array 
}
)

首先,我需要清楚它是否是一个字节数组?如何从中提取图像?

1 个答案:

答案 0 :(得分:5)

您的数据组织如下:

  • 最外层的数据结构是NSArrayNSMutableArray(正如您所写)。
  • 在索引0(数组中的第一个元素)处,有一个NSDictionary实例。
  • 在字典中,有两个键值对。一个具有键 Image 和一个字符串作为值。
  • 字符串值是二进制数据,编码为Base64。
  • 二进制数据是图像数据。

所以获取图像,你需要走这条路:

NSMutableArray* array = ... // from XML
NSDictionary* dict = [array objectAtIndex: 0];
NSString* dataString = [dict objectForKey: @"Image"];
NSData* imageData = [dataString base64DecodedData];
UIImage* image = [UIImage imageWithData: imageData];

请注意,Base64解码不是iOS的一部分。但网上有许多实现将字符串解码为数据。只是谷歌吧。

可以在GitHub上找到看起来很简单的Base64实现。