在 swift 中将 UIImage 转换为 base64 字符串
Convert UIImage to base64 string in swift
我正在尝试将 UIImage 转换为 base64 字符串,目的是将其上传到后端服务器。
然而,我在这篇文章中找到的转换代码(应该是Apple自己的实现)生成了一个无效的字符串:
Convert between UIImage and Base64 string
上传后,我得到这张图片:
[从 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变量的数据类型为Data。
我正在尝试将 UIImage 转换为 base64 字符串,目的是将其上传到后端服务器。
然而,我在这篇文章中找到的转换代码(应该是Apple自己的实现)生成了一个无效的字符串:
Convert between UIImage and Base64 string
上传后,我得到这张图片:
[从 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变量的数据类型为Data。