конвертировать base64 в изображение без подключения к интернету - PullRequest
0 голосов
/ 20 июня 2019

Я внедряю sqlite в свой проект swift и сохраняю строку base64 изображения в таблице sqlite, после того как получаю обратно изображение 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 голосов
/ 20 июня 2019

Используйте это расширение и поблагодарите меня позже:)

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)
0 голосов
/ 20 июня 2019

У вас может возникнуть проблема с префиксом data: image / png; base64

Если строка содержит data: image / png; base64 , при декодировании из base64 возвращается ноль.

Вы должны сначала удалить data: image / png; base64 из строки base64, затем вы получите изображение из строки.

После удаления используйте следующий код для получения изображения:

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