解码来自图像的base64字符串

时间:2018-08-26 16:23:31

标签: swift xcode image base64

我今天早些时候问了以下问题:Decoding base64 string is going wrong in swift

我尝试了很多事情,但我只是不明白为什么会出错。让我解释。我有一个mysql数据库,在其中上传了base64字符串,该字符串是图像的编码。然后,我想从mysql数据库下载此base64字符串,并将其转换为UIImage并显示它。这是代码的相关部分:

if data != nil {
                do {
                    let imagesJSON =  try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! NSDictionary
                    let images : NSArray = imagesJSON["images"] as! NSArray
                    let temp : NSArray = images[0] as! NSArray
                    var tempString64 : String = temp[0] as! String
                    // I found a question on this site that said that the string should be of length multiple of 4, the following does that.
                    let remainder = tempString64.count % 4
                    if remainder > 0 {
                        tempString64 = tempString64.padding(toLength: tempString64.count + 4 - remainder,
                                                      withPad: "=",
                                                      startingAt: 0)
                    }
                    //check if string is not nil
                    print(tempString64)

                    let dataDecoded = Data(base64Encoded: tempString64)
                    let decodedimage = UIImage(data: dataDecoded!)

                   DispatchQueue.main.async {
                        self.myImageView.image = decodedimage
                    }

                } catch {
                    print(error)
                }
            }

这是URLSession中的内容。当我打印tempString64时,我确实得到了一些东西,这是该字符串开头的样子:

/9j/4AAQSkZJRgABAQAASABIAAD/4QBYRXhpZgAATU0AKgAAAAgAAgESAAMAAAABAAEAAIdpAAQAAAABAAAAJgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAABraADAAQAAAABAAABHQAAAAD/

更长。但是当我运行该应用程序时,它说在拆包时发现dataDecoded为零。我已经尝试了很多东西,但是真的不明白为什么它不起作用。

0 个答案:

没有答案
相关问题