将 imageURL 从 Firebase 转换为 UIImage 的最快方法是什么?
What is the fastest way to convert an imageURL from Firebase into a 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? (也许是 cocoa-pod?或者更好的代码编写方式?)
其他问题:
- 如果 Firebase 中的图像质量较低,这会更快吗?
- 在传递到此函数之前降低图像质量是否是可行的解决方案?
许多进行大量图像下载的著名 iOS 应用程序(以及 Web 和移动应用程序和一般应用程序)都利用了渐进式 jpeg。这样你的用户至少会在图像加载时看到一些东西,并且随着时间的推移图像会逐渐变得更好。正如许多评论者所提到的,如果您拥有自己的后端服务器来提供可以进行性能优化的图片,那么您无法控制 Firebase。因此,您可以做的最好的事情之一就是在您的应用中实现渐进式 jpeg。
第一个 link 是一个允许您在 iOS 应用程序中使用渐进式 jpeg 的库。第二个 link 是 FaceBook 用于加快图像加载速度的详细方法。
https://www.airpair.com/ios/posts/loading-images-ios-faster-with-progressive-jpegs
在我的 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? (也许是 cocoa-pod?或者更好的代码编写方式?)
其他问题:
- 如果 Firebase 中的图像质量较低,这会更快吗?
- 在传递到此函数之前降低图像质量是否是可行的解决方案?
许多进行大量图像下载的著名 iOS 应用程序(以及 Web 和移动应用程序和一般应用程序)都利用了渐进式 jpeg。这样你的用户至少会在图像加载时看到一些东西,并且随着时间的推移图像会逐渐变得更好。正如许多评论者所提到的,如果您拥有自己的后端服务器来提供可以进行性能优化的图片,那么您无法控制 Firebase。因此,您可以做的最好的事情之一就是在您的应用中实现渐进式 jpeg。
第一个 link 是一个允许您在 iOS 应用程序中使用渐进式 jpeg 的库。第二个 link 是 FaceBook 用于加快图像加载速度的详细方法。
https://www.airpair.com/ios/posts/loading-images-ios-faster-with-progressive-jpegs