将ImageURL从Firebase转换为UIImage的最快方法是什么?

时间:2019-06-01 18:05:17

标签: ios swift firebase uiimage

在我的iOS应用中,我需要获取一个imageURL字符串并将其转换为UIImage。

我编写了以下函数来处理此问题:

 func getImage(urlString: String) -> UIImage {
    let url = URL(string: urlString)!
    do {
        let data = try Data(contentsOf: url)
        let image = UIImage(data: data)!
        return image
    } catch {
        print(error, " This was the error in p2")
    }
    return UIImage(named: "media")!
}

问题是这花费了太长时间。我相信这是完成此任务所需的时间。

我需要缩短时间。

问题:是否有更快的方法基于Firebase的imageURL获取UIImage? (也许是可可豆荚?还是写代码的更好方法?)

其他问题:

  • 如果Firebase中的图像质量较低,会更快吗?
  • 在传递给该功能之前降低图像质量是否是可行的解决方案?

1 个答案:

答案 0 :(得分:0)

许多进行大量图像下载的著名iOS应用程序(以及网络,移动和通用)都利用了渐进式jpeg。这样,您的用户在加载图像时将至少看到一些东西,随着时间的推移,图像将逐渐变得更好。正如许多评论者所提到的那样,如果您拥有自己的后端服务器来交付可以优化性能的图片,那么您将不受Firebase的控制。因此,您可以做的最好的事情之一就是在应用中实现渐进式jpeg。

第一个链接是一个库,它将使您可以在iOS应用中使用渐进式jpeg。第二个链接是FaceBook上用于更快加载图像的详细方法。

https://www.airpair.com/ios/posts/loading-images-ios-faster-with-progressive-jpegs

https://code.fb.com/ios/faster-photos-in-facebook-for-ios/