iOS 的 Gif 渲染引擎 FLAnimatedImage-b

公司的项目有个首页加载一张2M左右的git图,刚做的时候是使用的SDWebImage里面的方法:

+ (UIImage *)sd_animatedGIFNamed:(NSString *)name;
+ (UIImage *)sd_animatedGIFWithData:(NSData *)data;

使用之后发现这个方法会使内存迅速上增300M,在网上找了一些方法:

//在didReceiveMemoryWarning方法中释放SDImage的缓存即可!
- (void)didReceiveMemoryWarning {
        [superdidReceiveMemoryWarning];
    // Dispose of     any resources that can be recreated.
        [[SDWebImageManagersharedManager]cancelAll];
        [[SDImageCachesharedImageCache]clearDisk];
}

但是使用之后发现效果并不明显,于是使用了这个FLAnimatedImage

FLAnimatedImage 是 iOS 的一个渲染 Gif 动画的引擎。

功能:

  • 可同时播放多个 Gif

    动画,速度媲美桌面浏览器

  • 可变帧延迟
  • 内存占用小
  • 可在第一次循环播放时消除或者阻止延迟
  • 动画的帧延迟解析性能媲美浏览器

示例代码:

 

FLAnimatedImage *image = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif"]]]; FLAnimatedImageView *imageView = [[FLAnimatedImageView alloc] init]; imageView.animatedImage = image; imageView.frame = CGRectMake(0.0, 0.0, 100.0, 100.0); [self.view addSubview:imageView];

效果图:

时间: 2024-08-26 05:03:25

iOS 的 Gif 渲染引擎 FLAnimatedImage-b的相关文章

[ 浏览器内核 ] 渲染引擎机制

浏览器内核 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如标准通用标记语言下的一个应用HTML.JavaScript)并渲染(显示)网页. 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同

应对iOS政策,白鹭引擎助力数十家团队过审 AppStore 经验分享

2019年苹果更新了对HTML5游戏的政策,要求HTML5游戏应在 Safari浏览器中展现,而不是直接打包为 ipa 发布到 AppStore 中,对此,很多 开发者给予关注,并跟我们咨询寻求帮助,解决他们在白鹭引擎开发的HTML5游戏发布到AppStore的问题. 在我们白鹭完整的开发工作流产品中,使用Egret Native就可以解决就可以解决这个问题. 在最近几个月的时间中,我们引擎团队帮助数十家开发商成功将其产品顺利通过 AppStore 新规审核,总结了一些实操经验,今天跟大家分享下

浏览器内核、渲染引擎、js引擎

[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具 [2]常见引擎 渲染引擎: firefox使用gecko引擎 IE使用Trident引擎 2015年微软推出自己新的浏览器,原名叫斯巴达,后改名edge,使用edge引擎 opera最早使用Presto引擎,后来弃用 chrome\safari\opera使用webkit引擎 13年chrome和opera开始使用Blink引擎 js

【转】浏览器内核、渲染引擎、js引擎

[1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具 [2]常见引擎 渲染引擎(内核): firefox使用gecko引擎 IE使用Trident引擎 2015年微软推出自己新的浏览器,原名叫斯巴达,后改名edge,使用edge引擎 opera最早使用Presto引擎,后来弃用 chrome\safari\opera使用webkit引擎 13年chrome和opera开始使用Blink引

三维渲染引擎设计与时间(一)

一.初始osg 三维渲染引擎:为了实现三维场景图形的结构管理和绘制而提供的一系列API的集合.包括构建层和交互层. Crystal Space.Java3D.Unreal-- osg库:构件场景图形的场景图形节点类.用作向量和矩阵运算的类:可绘制体和几何体类:用于描述和管理渲染状态的类:以及图形程序所需的典型功能类. osgDB库:用于2D和3D文件读写的插件类注册器,以及用于访问和读写这些插件的特定功能类:数据的动态分页调度机制 osgUtil库:实用工具库.包括场景图形数据统计和优化工具.渲

渲染引擎,HTML解析

这是how browser to work 的翻译 转自:携程设计委员会 渲染引擎 渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上. 默认情况下渲染引擎可以显示HTML,XML文档以及图片. 通过插件(浏览器扩展)它可以显示其它类型文档.比如使用PDF viewer插件显示PDF文件.我们会在一个专门的章节讨论插件与扩展.在这一节我们将专注渲染引擎的主要用途——显示用CSS格式化的HTML与图片. 各种渲染引擎 我们提到的Firefox, Safari两种浏览器构建于两种渲染引擎

Chromium浏览器之渲染引擎Blink

Blink是谷歌公司的浏览器Chromium使用的渲染引擎. Blink处于一个包容性的开源社区里,它欢迎任何人分享其使命. Blink是在一种抽象的平台上实现的, 因此本身不能运行. Chromium Content module提供这个抽象平台运行所需的Blink的实现. Content模块的开发有专门的文档描述.有关调试Blink一些提示和建议,请参阅入门Blink调试页面. 需要注意的是Blink的代码必须符合Blink编码风格指南所规定的编码风格. 那么问题来了:我怎么把Blink移植

浏览器渲染引擎介绍(备忘)

Trident.Gecko.Presto.WebKit --是4种常见的浏览器内核(1)Trident 是微软的Windows搭载的网页浏览器--Internet Explorer浏览器使用的内核(俗称IE内核)(2)Gecko Gecko是开放源代码.以C++编写的网页排版引擎,目前被Mozilla家族网页浏览器以及Netscape 6以后版本浏览器所使用. 也就是现在的Firefox(3)Presto Presto是一个由Opera Software开发的浏览器排版引擎,目前Opera 7.

浏览器渲染引擎总结

一.主要模块 1.HTML解析器 解析HTML文本的解析器,主要作用是将HTML代码解析成DOM树 2.CSS解析器 级联样式表的解析器,主要作用是为DOM中的各个元素对象计算出样式信息, 从而为计算最后网页的布局提供基础设施 3.Javascript引擎 解析执行javascript脚本,使用javascript代码可以修改网页的内容, 也能修改css的信息.即javascript可以通过DOM,CSSDOM接口来修改 网页内容和样式信息,从而改变渲染结果 4.布局 在DOM树创建完成之后,渲