加载图像时使用 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 库滚动时因内存问题而终止
如何在 watch OS 2 中使用 Kingfisher 图像库或 AlamofireImage?
如何使用 Kingfisher 在 UIButton 的 setBackgroundImage 期间设置 indicatorType