0

我在对象中得到一个字节数组(我认为)NSMutableArray'sNSMutableArray我得到的是从Xml服务 URL 解析..现在我需要将该字节数组转换为UIImage..通过 google 并找到转换为NSData然后UIImage但不能怎么理解..?我该怎么做 ?

我的数组看起来像这样:

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

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

4

1 回答 1

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 实现。

于 2012-11-24T11:16:09.243 回答