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)我要不要换一下我用的口罩?我应该把它压缩一下吗?还是我做错什么了?
发布于 2019-10-25 16:43:16
WebP编码速度相对较慢,它采用软件编码和VP8压缩算法(复杂),与硬件加速的JPEG/PNG编码相比。(苹果的SoC)
直接从照相机拍摄的照片
在iPhone相机上拍摄的原始图像可能真的是云雀,就像4K分辨率。如果你不做一些预缩放,并试图对它进行编码,你可能会消耗更多的时间。
建议如下:
[UIImage sd_resizedImage:]。如果你是真正的基准什么的,比较一下JPEG/PNG (硬件)和WebP (软件)。您可以在这里尝试使用我的基准代码演示,以帮助您做出决定。
https://stackoverflow.com/questions/58547170
复制相似问题