Swift 探索与思考

Swift Base64String 转data,再转化为图片的

2018-08-21  本文已影响602人  steveMoriya

在将base64转化为图片过程中,遇到一个现象。Swift校验字符串不通过,字符串转为data时,一直报nil,但是将字符串放在校验网站,安卓那边可以校验成功。

经过多方检查,原来是base64生成后,是数据传回时,字符串末尾存在丢失符号问题。解决办法,数据末尾添加==符号

591533446995_.pic_hd.jpg

附校验base64String的网址: http://imgbase64.duoshitong.com/

实现代码

 //转换数据
//let imageData = try? Data(contentsOf: NSURL(string: self.tempImgStr)! as URL) //备用方法
                    
let base64String = self.tempImgStr.replacingOccurrences(of: "data:image/png;base64,", with: "")
                    
//转换尝试判断,有可能返回的数据丢失"==",如果丢失,swift校验不通过
var imageData = Data(base64Encoded: base64String, options: .ignoreUnknownCharacters)
if imageData == nil {
    imageData = Data(base64Encoded: base64String + "==", options: .ignoreUnknownCharacters) //如果数据不正确,添加"=="重试
}
                    
var image:UIImage?
if imageData != nil {
image = UIImage(data: imageData!) //转换内容
} else {
    image = self.tempImage
}
                    
if image != nil {
 //将数据存储到相册
UIImageWriteToSavedPhotosAlbum(image!, self, #selector(self.saveImage(image:didFinishSavingWithError:contextInfo:)), nil)
//发送反馈消息,发送执行结果回调信息
//let dic = ["code": 1, "msg":"", "data":[]] as [String : Any]
//callback?(dic)                  
}

上一篇 下一篇

猜你喜欢

热点阅读