美文网首页iOS相关技术原理
iOS图片加载渲染过程

iOS图片加载渲染过程

作者: 孤城一抹霞 | 来源:发表于2021-09-16 15:28 被阅读0次

一. CPU、GPU协同工作

1.CPU:计算试图frame、图片解码、将需要绘制的纹理图片通过数据总线交给GPU
2.GPU:纹理混合、顶点变换计算、像素点填充计算、渲染到缓冲区
3.时钟信号:垂直同步信号V-Sync/水平同步信号H-Sync
4.iOS双设备缓冲机制:显示系统引入两个帧缓冲区、双缓冲机制

二. 图片加载流程

1.使用+imageWithContentsOfFile:方法从磁盘中加载一张图片,此时图片还未解压缩
2.将生成的UIImage赋值给UIImageView
3.一个隐式的CATransaction捕获到UIImageView图层树的变化
4.主线程下一个runloop到来时,Core Animation提交隐式的transaction,对图片进行copy
· 分配内存缓冲区用于管理文件 IO 和解压缩操作
· 将文件数据从磁盘读到内存中
· 将压缩的图片数据解码成未压缩的位图形式,这是一个非常耗时的 CPU 操作
· Core AnimationCALayer使用未压缩的位图数据渲染 UIImageView 的图层
· CPU计算好图片的Frame,对图片解压之后.就会交给GPU来做图片渲染
5.渲染流程
GPU获取获取图片的坐标
将坐标交给顶点着色器(顶点计算)
将图片光栅化(获取图片对应屏幕上的像素点)
片元着色器计算(计算每个像素点的最终显示的颜色值)
从帧缓存区中渲染到屏幕上

图片的解压缩是一个非常耗时的 CPU 操作,并且它默认是在主线程中执行的。那么当需要加载的图片比较多时,就会对我们应用的响应性造成严重的影响,尤其是在快速滑动的列表上,这个问题会表现得更加突出。

相关文章

  • iOS 图片渲染到屏幕的过程及性能的提升方案

    iOS 渲染时CPU与GPU协助的过程: 图片加载的过程: 假设我们使用 +imageWithContentsOf...

  • iOS图片加载渲染过程

    一. CPU、GPU协同工作 1.CPU:计算试图frame、图片解码、将需要绘制的纹理图片通过数据总线交给GP...

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

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

  • 16、render树、解析和加载、回流和重绘

    解析和加载 加载是一个异步的过程 ,例如图片的请求渲染不会影响整个html的加载和渲染 解析的过程 形成dom t...

  • iOS图片渲染过程

    iOS渲染过程:1.在 VSync 信号到来后,主线程开始在cpu上做计算。2.CPU计算显示内容:视图创建、布局...

  • iOS离屏渲染

    通过iOS图片渲染过程初探、Core Animation渲染过程中我们简单的介绍了渲染的原理,在本章我们探讨下,渲...

  • iOS图片加载过程

    通常计算机在显示图片都是CPU与GPU协同合作完成一次渲染工作。 CPU:负责计算图片frame,解码,CoreG...

  • iOS图像加载原理

    图片加载 在iOS中,图片显示的过程大致如下: 从磁盘读取图片并加载到内存。(data buffer) CPU对图...

  • 使用nodejs生成图片的尝试

    最近在开发项目的过程中,碰到了前端渲染的瓶颈,在首页加载图片的过程中,渲染echarts图片过多容易导致页面的卡顿...

  • iOS图片渲染过程初探

    对于计算机软件的从业人员来说我们知道计算机有两大核心处理器: CPU(Central Processing Uni...

网友评论

    本文标题:iOS图片加载渲染过程

    本文链接:https://www.haomeiwen.com/subject/wywrgltx.html