【发布时间】: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 压缩质量