2016-04-25 58 views
2

我有一个包含一些图像的mysql数据库。我从一个PHP文件中接收数据:解码base64_encode从Swift中的JSON图像

php: 

    $result[$key]['image'] = based64_encode($resultArray[$key]['image']); 

现在用JSON文件,我得到的是这样的:

Json: 
{"image":"\/9j\/4Q\/+RXhpZgAATU0AKgAAAAgACgEPAAIAAAAGAAAAhgEQAAIAAAAKAAAAjAESAAMAAAABAAYAAAEaAAUAAAABAAAAlgEbAAUAAAABAAAAngEoAAMAAAABAAIAAE... 

我有我迅速的项目,并希望将图像解码成一个UIImage,到目前为止,我不知道如何解码图像。我有以下几点。

Swift: 
Alamofire.request(.GET, url).responseJSON { (response) -> Void in 

     if let JSON = response.result.value as? [[String : AnyObject]]{ 
      for json in JSON{ 
       JSON 
       let encodedImage = json["image"] 
       let imageData = NSData(base64EncodedString: encodedImage) 
      } 

     } 

如何解码图像以便我可以显示它?

回答

3

您必须将字典值从AnyObject转换为字符串。您还需要使用.IgnoreUnknownCharacters选项解码字符串数据。试着这样

if let encodedImage = json["image"] as? String, 
    imageData = NSData(base64EncodedString: encodedImage, options: .IgnoreUnknownCharacters), 
    image = UIImage(data: imageData) { 
    print(image.size) 
} 

斯威夫特3.0.1•Xcode的8.1 ​​

if if let encodedImage = json["image"] as? String, 
    let imageData = Data(base64Encoded: encodedImage, options: .ignoreUnknownCharacters), 
    let image = UIImage(data: imageData) { 
    print(image.size) 
}