Skip to content

Latest commit

 

History

History
92 lines (17 loc) · 1.8 KB

加载大图的优化算法.md

File metadata and controls

92 lines (17 loc) · 1.8 KB

加载大图的优化算法

图片显示的过程?

假设我们使用 +imageWithContentsOfFile: 方法从磁盘中加载一张图片,这个时候的图片并没有解压缩; 然后将生成的 UIImage 赋值给 UIImageView ; 接着一个隐式的 CATransaction 捕获到了 UIImageView 图层树的变化; 在主线程的下一个 run loop 到来时,Core Animation 提交了这个隐式的 transaction ,这个过程可能会对图片进行 copy 操作,而受图片是否字节对齐等因素的影响,这个 copy 操作可能会涉及以下部分或全部步骤:

分配内存缓冲区用于管理文件 IO 和解压缩操作; 将文件数据从磁盘读到内存中; 将压缩的图片数据解码成未压缩的位图形式,这是一个非常耗时的 CPU 操作; 最后 Core Animation 使用未压缩的位图数据渲染 UIImageView 的图层。(必须要了解位图相关的知识点)

图片一直是 App 内存消耗大户,本文从图片的加载、解压、呈现开始,特别介绍了列表型应用应该如何优化图片内存问题

iOS 图片压缩方法

2019 面试准备 - 图片

Web 性能优化: 图片优化让网站大小减少 62%

探讨iOS 中图片的解压缩到渲染过程

iOS图像最佳实践总结

Image Analysis Solutions for Mobile Apps