ios - 如何减少 base64 字符串长度

标签 ios swift base64

我正在尝试将从 UIImagePickerController 中选择的图像转换为 base64 字符串。但字符串的长度大约超过 12 Corer,这导致 iPhone 挂起。

这是我使用的代码。

 func compressImage(img:UIImage) -> String {
    Utill.showProgress()
    var imageData =  Data(UIImagePNGRepresentation(img)! )
    print("***** Uncompressed Size \(imageData.description) **** ")
    imageData = UIImageJPEGRepresentation(img, 0.025)!
    print("***** Compressed Size \(imageData.description) **** ")
    let image = UIImage(data: imageData)
    let imagesData:NSData = UIImagePNGRepresentation(image!)! as NSData
    let strBase64 = imagesData.base64EncodedString(options: .lineLength64Characters)
    Utill.dismissProgress()
    return strBase64

}

有没有其他方法可以减少字符串,使其减少到 10K - 30K 左右?

最佳答案

试试这个代码,

func convertImageToBase64(image: UIImage)-> String  {

    if let imageData = image.jpegData(compressionQuality: 0.25){
       let base64String = imageData.base64EncodedString()
       return base64String
    }

   return ""
}

关于ios - 如何减少 base64 字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56598732/

相关文章:

java - 在 Android 中使用 OkHttp 客户端时 header 值中出现意外的字符 0x0a

ios - 为什么 'present as popover' segue 覆盖了整个屏幕?

iphone - 如果没有更好的代码检查方式,我该如何编写呢?

ios - 快速禁用 UITextField 中的闪烁光标?

ios - 缩小 UITableView 标题会在标题和单元格之间创建一个间隙

jQueryUI CSS 包含图像

PHP如何将二进制数据编码为base 64

objective-c - 应用程序处于后台时中断后恢复执行代码

swift - 如何在swift中实现双向链表?

ios - Comscore SDK 未在 Swift 项目中进行跟踪