[英]Convert UIImage to base64 string in swift
我试图将UIImage转换为base64字符串,目的是将其上传到后端服务器。
但是,我在本文中找到的转换代码(应该是Apple自己的实现)会生成无效的字符串:
上传后,我得到此图像:
[从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.