【问题标题】:How to Reduce the base64 String Length如何减少 base64 字符串长度
【发布时间】:2019-06-14 12:59:58
【问题描述】:

我正在尝试将从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 左右?

【问题讨论】:

  • 不,我认为没有办法减小字符串的大小。如果它真的因此而被绞死,请进一步压缩您的图像并评论/删除打印语句
  • 即使不压缩图像,挂起问题仍然存在
  • 为什么要用同一种方法转换两次数据?
  • 你能打印你的图片尺寸print(img.size)吗?您可以在保存之前调整图像大小。不要使用PNG。将其保存为 jpeg,我将使用 0.75 压缩质量

标签: ios swift base64


【解决方案1】:

试试这个代码,

func convertImageToBase64(image: UIImage)-> String  {

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

   return ""
}

【讨论】:

  • 您应该解释一下您的代码与原始代码相比的作用。通常不鼓励仅使用代码回答,因为即使他们解决了问题,也不会为任何(未来的)读者提供学习体验,也不会让读者理解潜在的问题和解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多