繁体   English   中英

快速将UIImage转换为base64字符串

[英]Convert UIImage to base64 string in swift

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

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

在UIImage和Base64字符串之间转换

上传后,我得到此图像:

[从iOS转换为base64 1解码的失败图像

代替这个:

[从在线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 {

}

对于Swift 4,做这样的事情,

编码-

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

base64变量的数据类型为数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM