FLAnimatedImage -ios gif图片加载框架介绍
2023-09-27 14:22:49 时间
简介
FLAnimatedImage 是 Flipboard 团队开发的在它们 App 中渲染 GIF 图片使用的库。 后来 Flipboard 将 FLAnimatedImage 开源出来供大家使用。本文章主要是介绍FLAnimatedImage框架的GIF动画加载和播放流程,旨在说明流程和主要细节点。
ios原有加载缺陷分析
大家知道在 iOS 中处理过 GIF 图片, 如果通过原生系统提供的能力, 可能只有两种方式。 并且这两种方式都不是专门针对于 GIF 的解决方案,更像是一种 hack。
第一种方式, UIImage 虽然提供了一种创建连续切换的动画图片的能力, 但这个能力更像是为了那些简单动画而服务的。 比如加载数据时候显示的 loading 图片。 如果将 GIF 图片通过这种能力来显示,会带来诸多问题。
第二种方式,可能是大家用的最多的了。 就是创建一个 UIWebView 然后在这里面把 GIF 显示出来。 但从原理上来想, UIWebView 并不是为了显示 GIF 图片而生的。
gif渲染原理分析
为什么说 FLAnimatedImage 相对于 iOS 原生的几种 hack 方式更趋近于最佳实践呢? 咱们简单聊聊 FLAnimatedImage 渲染 GIF 图片的原理。FLAnimatedImage 会有两个线程同时在运转。 其中一个线程负责渲染 GIF 的每一帧的图片内容(所谓的渲染,大体上就是加载 GIF 文件数据,然后抽取出来当前需要哪一帧)。这个加载图片的过程是在异步线程进行的。
然后 FLAnimatedImage 会有一个内存区域专门放置这些渲染好的帧。 这时候,在主线程中的 ImageView 会根据当前需要,从这个内存区域中读取相应的帧。这是一个典型的生产者-消费者问题。
相关文章
- iOS数字媒体开发浅析
- IOS QuartzCore核心动画框架
- Appium自动化测试框架研究(2)——搭建IOS环境
- 猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController
- 构建 iOS 风格移动 Web 应用程序的8款开发框架
- iOS中 HeathKit框架学习 步数统计等 韩俊强的博客
- iOS中 自定义cell分割线/分割线偏移 韩俊强的博客
- iOS中 语音识别功能/语音转文字教程详解 韩俊强的博客
- 【iOS开发-52】假设要模仿练习,怎样找到其它应用程序的icon、使用框架等资源?
- ios之animateWithDuration的坑
- iOS 使用Quartz 2D画虚线
- ios UI 适配布局相关文章
- 李洪强iOS经典面试题32-简单介绍 ARC 以及 ARC 实现的原理
- iOS之UI--主流框架的搭建-- 仿制QQ的UI框架
- 李洪强iOS开发本人集成环信的经验总结_02_基本配置
- iOS开发UI篇—CAlayer(自定义layer)
- iOS开发网络篇—使用ASI框架进行文件下载
- 李洪强iOS开发之Foundation框架—集合
- iOS 开发之照片框架详解
- iOS开发者参考的RN资料推荐集合!nice!
- ios中的设计模式之class Clusters
- iOS开发中各种关键字的区别