在我正在开发的应用中,客户输入一些个人信息并在屏幕上签名。然后我以编程方式截取完整视图并将其转换为base64。
这很好,但是,由于图像的大小,它需要大约15秒才能将其转换为base64并将其发送到API服务器。完整质量的图像尺寸与iPad Air分辨率(1536x2048)相同。
作为PNG保存在服务器上后,图像的重量大约为410kb。
我希望将图像捕捉的大小调整为768x1024(它的一半)而不会失去清晰度。我认为这样可以节省时间和存储空间。
我目前正在拍摄"截图"使用以下功能:
func screenCaptureAndGo() {
//Create the UIImage
UIGraphicsBeginImageContextWithOptions(view.frame.size, view.opaque, 0.0)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
imageData = UIImagePNGRepresentation(image)
imageDataString = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
}
我遗漏了API服务器的东西,因为它并不真正相关。
答案 0 :(得分:0)
我最后只使用了Scale属性。它没有第一次工作,这就是为什么我没有想到再次使用它,但是在玩弄它之后我就开始工作了。
我使用0.7作为比例量,图像现在以100kb计时,转换并发送base64字符串需要4秒。