2016-04-25 4 views
2

Ich habe eine MySQL-Datenbank, die einige Bilder enthält. Ich erhalte die Daten aus einer PHP-Datei:Decode base64_encode Bild von JSON in Swift

php: 

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

Jetzt mit einer Json-Datei, ich so etwas wie diese:

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

Ich habe mein rasches Projekt und das Bild in eine UIImage entschlüsseln, Bisher habe ich keine Ahnung, wie man das Bild entschlüsselt. Ich habe folgendes.

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) 
      } 

     } 

Wie kann ich das Bild entschlüsseln, damit ich es anzeigen kann?

Antwort

3

Sie müssen Ihren Wörterbuchwert von AnyObject in String umwandeln. Sie müssen Ihre Zeichenkettendaten auch mit der Option .IgnoreUnknownCharacters dekodieren. Versuchen Sie, wie diese

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

Swift 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) 
}