一张图片渲染到页面的过程

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

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

你可能感兴趣的:(一张图片渲染到页面的过程)