在imageview中显示base64编码图像:SWIFT 3

时间:2017-06-21 20:39:39

标签: swift

我有使用POST请求从网页下载的base64图像字符串,我正在尝试解码并显示在imageview内部,但它无法正常工作。我尝试了几个来源,但没有运气:(

let base64String = "data:image/jpg;base64,/9j/4aaQSkZJRg0BMADAE15a5df.....H/12Q=="

目前,尝试这种方法:

if let decodedData = Data(base64Encoded: base64String, options: .ignoreUnknownCharacter) {
   let image = UIImage(data: decodedData)
   ImageView.image = image
} else {
        print("error in decoding")
  }

还尝试了NSData方法:

let dataDecode:NSData = NSData(base64Encoded: base64String!, options:.ignoreUnknownCharacters)!
let image= UIImage(data: dataDecode as Data)!
yourImageView.image = image

else部分始终执行。我已经在xCode playground中尝试了这一点,方法是将编码的字符串放在静态变量中,并在条件行前注意nil

不确定,我做错了什么?

2 个答案:

答案 0 :(得分:1)

小心,只有部分字符串代表图像

让base64String ="数据:image / jpg; base64,9j / 4aaQSkZJRg0BMADAE15a5df ..... H / 12Q == "

答案 1 :(得分:0)

您的base64String实际上是一个带有数据方案的网址。内置支持这些类型的URL。

您可以执行以下操作:

let dataString = "data:image/jpg;base64,/9j/4aaQSkZJRg0BMADAE15a5df.....H/12Q=="
let dataURL = URL(string: dataString)
let data = Data(contentsOf: dataURL)
let image = UIImage(data: data)

我将其留作练习来正确处理可选值和错误处理。