加载图像时使用 iOS 中的 Kingfisher 库进行图像优化?

Posted

技术标签:

【中文标题】加载图像时使用 iOS 中的 Kingfisher 库进行图像优化?【英文标题】:Image optimisation using the Kingfisher library in iOS when loading an image? 【发布时间】:2018-02-09 04:33:38 【问题描述】:

我正在从服务器加载列表中的图像。 UIImageView 尺寸非常小(40 x 40),因此理想情况下应在其中加载尺寸为 40 x 40 或稍大一点的图像。但是,服务器人员正在发送更大尺寸 (1920 x 1200) 的图像。

当我诊断视图控制器内存时,我注意到它随着图像加载而增加。

所以我的问题是

Kingfisher 库会下载较小尺寸的图像吗?

图片太大会中止加载吗?

有什么方法可以具体完成上述任务。

翠鸟:https://github.com/onevcat/Kingfisher

【问题讨论】:

看到这个***.com/questions/31966885/… 我不是在问如何调整图像大小。 我已对您的问题进行了编辑,以使其更易于理解。如果我误解了什么,请随时指出。 (或者改回来) 【参考方案1】:

Kingfisher 库会下载更小尺寸的版本吗? 图片?

Kingfisher 和任何其他库都不会下载较小版本的图像。服务器必须向您发送一个较小的版本。 (不同的url,或者带参数的相同url)

如果图片太大,会中止图片加载吗?

我不知道库是如何实现下载的,但除非您谈论的是不合理的大文件(比您预期的分辨率 (1920x1200) 大得多),否则它不会被中止。即使这样,它也可能不会被中止,而是在显示超高分辨率图像(再次,远大于 1920 x 1200)时,应用程序可能会被系统杀死

有什么方法可以具体完成上述任务。

如果您想一次显示许多图像并且担心它们的大小,最好创建它们的缩略图。

你可以用翠鸟来

1) 先下载图片

2) 然后调整图片大小

3) 然后在需要时显示并缓存它

查看此页面以查看该库的大量代码 sn-ps。

https://github.com/onevcat/Kingfisher/wiki/Cheat-Sheet

【讨论】:

dhiraj - 关注这个答案

以上是关于加载图像时使用 iOS 中的 Kingfisher 库进行图像优化?的主要内容,如果未能解决你的问题,请参考以下文章

来自调试器的消息:在 UITableView/UICollectionView 中使用 gif 图像 Kingfisher 库滚动时因内存问题而终止

将使用 Kingfisher 下载的图像保存到文档目录

如何在 watch OS 2 中使用 Kingfisher 图像库或 AlamofireImage?

如何使用 Kingfisher 在 UIButton 的 setBackgroundImage 期间设置 indicatorType

翠鸟图像加载错误

IOS Rxswift 使用 Kingfisher 预取 cell Image