iOS版本:13.1 iPhone:X
我目前正在使用DBAttachmentPickerController从各种图像中进行选择,当我直接从相机拍摄一张照片并尝试将其上传到我们的服务器时,就会出现问题。 SDImageWebPCoder.shared.encodedData
的加载时间减少了约30秒。 Android应用中的同一张图片大约需要2-3秒。
这是我使用的代码
let attachmentPickerController = DBAttachmentPickerController(finishPicking: { attachmentArray in
self.images = attachmentArray
var currrentImage = UIImage()
self.images[0].loadOriginalImage(completion: { image in
self.userImage.image = image
currrentImage = image!
})
//We transform it to webP
let webpData = SDImageWebPCoder.shared.encodedData(with: currrentImage, format: .webP, options: nil)
self.api.editImageUser(data: webpData!)
}, cancel: nil)
attachmentPickerController.mediaType = DBAttachmentMediaType.image
attachmentPickerController.allowsSelectionFromOtherApps = true
attachmentPickerController.present(on: self)
我应该更换我正在使用的Pod吗?我应该压缩吗?还是我做错了什么?
答案 0 :(得分:0)
WebP的编码速度很慢,与硬件加速的JPEG / PNG编码相比,它使用软件编码和VP8压缩算法(比较复杂)。 (Apple的SoC)。
直接从相机拍摄图片
在iPhone相机上拍摄的原始图像可能真的很模糊,例如4K分辨率。如果您不进行预缩放并尝试对其进行编码,则可能会花费更多时间。
建议可以是这样的:
th:data=${url}
。与JPEG / PNG(硬件)和WebP(软件)相比,如果您对真正的基准测试感兴趣。您可以在此处尝试使用我的基准代码演示,以帮助您做出决定。