在swift中将UIImage转换为base64字符串



我正在尝试将UIImage转换为base64字符串,目标是将其上传到后端服务器。

然而,我在本文中找到的转换代码(应该是Apple自己的实现)生成了一个无效字符串:

UIImage和Base64字符串之间的转换

上传后,我得到这个图像:

[从iOS解码成base64 1的Failty图像]

而不是:

[从在线base64转换工具解码的正确图像]2

我使用Postman测试了上传结果,后端正确处理了有效的base64图像,因此我将错误缩小到base64转换本身。下面是我的代码:

public extension UIImage
{
     func base64Encode() -> String?
    {
        guard let imageData = UIImagePNGRepresentation(self) else
        {
            return nil
        }
        let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
        let fullBase64String = "data:image/png;base64,(base64String))"
        return fullBase64String
    }
}

在我将其上传到服务器之前,我该如何修复我的iOS设备上的base64输出?

这样做:

编码的

:

data.base64EncodedStringWithOptions([])
解码

:

let url = URL(string: String(format:"data:application/octet-stream;base64,%@",base64String))
do {
    let data =  try Data(contentsOf: url!)
}catch {
}

像这样做,

For Encoding -

let imgObj = UIImage(named: "photo")    
let imageData = UIImagePNGRepresentation(imgObj!)! as NSData
let base64 = imageData.base64EncodedData(options: .lineLength64Characters)

相关内容

  • 没有找到相关文章

最新更新