美文网首页Swift 探索与思考
Swift Base64String 转data,再转化为图片的

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

作者: steveMoriya | 来源:发表于2018-08-21 11:57 被阅读602次

    在将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)                  
    }
    
    

    相关文章

      网友评论

        本文标题:Swift Base64String 转data,再转化为图片的

        本文链接:https://www.haomeiwen.com/subject/rtidiftx.html