将UIImage转换为少于100个字符的Base64字符串。 Swift 4.2 |的iOS

时间:2019-05-07 06:34:36

标签: ios swift base64 image-compression

我想将UIImage对象编码为Base64 String。通常,我得到的字符串很大,而且该过程也需要很长的执行时间。

func convertImageToBase64String () -> String {
    guard let imageData: Data = UIImage.jpegData()
    let imgString = imageData.base64EncodedString(options: .init(rawValue: 0))
    return imgString
}

class func convertBase64StringToImage (imageBase64String: String) -> UIImage? {
    guard let imageData = Data.init(base64Encoded: imageBase64String, options: .init(rawValue: 0)) else { return nil }
    let image = UIImage(data: imageData)
    return image
}

请在这里为我提供帮助。

1 个答案:

答案 0 :(得分:1)

无法实现您想要的。 JPEG数据已经是图像的压缩形式。而且,当您将数据转换为base64编码时,结果是一个比原始数据大33%的字符串。

因此,获取少于100个字符的JPEG图像的base64编码的字符串表示形式的唯一方法是确保原始JPEG小于66个字节。我非常确定即使是1x1像素的JPEG也将超过66个字节。

如果JPEG是在iOS设备上拍摄的完整照片,则结果数据将为几兆字节。提交需要时间。