我有使用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
。
不确定,我做错了什么?
答案 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)
我将其留作练习来正确处理可选值和错误处理。