在不连接互联网的情况下将base64转换为图像

时间:2019-06-20 05:23:06

标签: ios swift sqlite uiimage base64

我在我的swift项目中实现了sqlite,并且我在sqlite表中存储了base64图像字符串,然后在我取回base64图像之后,但是我的情况是,当用户访问应用程序的脱机模式时,如何将base64转换为uiimage而不用互联网,所以任何人都可以告诉我,他们有没有互联网的转换方式

let decodedData = NSData(base64EncodedString: base64String, options: NSDataBase64DecodingOptions.fromRaw(0)!)
var decodedimage = UIImage(data: decodedData)
println(decodedimage)
imgView.image = decodedimage as UIImage

我正在像这样进行转换,但是在离线模式下我无法将base64转换为图像,所以请帮助我

2 个答案:

答案 0 :(得分:0)

您可能会遇到前缀 data:image / png; base64

的问题

如果字符串包含 data:image / png; base64 ,则从base64解码时它将返回nil。

您必须先从base64字符串中删除 data:image / png; base64 ,然后才能从字符串中获取图像。

删除后,使用以下代码获取图像:

if let decodedData = Data(base64Encoded: base64String, options: .ignoreUnknownCharacters) {
            let image = UIImage(data: decodedData)
            print(image)
        }

答案 1 :(得分:0)

使用此扩展名,以后再说:)

extension UIImage{
convenience init?(base64 str: String) {
    guard let url = URL(string: str),
        let data = try? Foundation.Data(contentsOf: url),
        UIImage(data: data) != nil else { return nil }
    self.init(data: data)!
}
}

//self.imageView.image = base64ToImage(base64String: urlString)