我正在尝试将 UIImage 转换为 base64 字符串,目的是将其上传到后端服务器。
然而,我在这篇文章中找到的转换代码(应该是Apple自己的实现)生成了一个无效的字符串:
UIImage 和 Base64 字符串之间的转换 https://stackoverflow.com/questions/11251340/convert-between-uiimage-and-base64-string
上传后,我得到这个图像:
[从 iOS 转换 base64 解码的错误图像1 https://i.stack.imgur.com/QHFOn.jpg
而不是这个:
[从在线base64转换工具解码的正确图像2 https://i.stack.imgur.com/WcJQS.jpg
我使用 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 {
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)