【技术实现步骤摘要】
一种GIF渲染方法及装置
[0001]本专利技术涉及GIF渲染
,尤其涉及一种GIF渲染方法及装置。
技术介绍
[0002]目前在Flutter项目中加载GIF图的方式主要是通过官方SDK提供的API Image.asset()(即Flutter SDK提供的一个用来从本地图片资源加载出解码出图片实例的接口)来进行加载;也可以使用AnimationController来自行实现GIF图的渲染逻辑。其中,AnimationController是Flutter SDK提供的动画控制器类,拥有一个与屏幕刷新帧率相等的回调函数,用于结合Flutter视图完成大小、位置、旋转等各式各样的动画效果。
[0003]官方SDK提供的API由于Image组件内部的实现原理,使用中无法控制GIF的播放流程,且动效的刷新帧率默认为原资源的两倍。而使用AnimationController来自行实现GIF图渲染流程的方案虽然可以控制播放,但是由于AnimationController本身的实现原理,导致它的回调函数固定是跟随屏幕刷新帧 ...
【技术保护点】
【技术特征摘要】
1.一种GIF渲染方法,其特征在于,包括:通过全局定时器设置GIF渲染频率,并根据所述GIF渲染频率进行GIF渲染处理;其中,所述全局定时器回调频率为60次/s;当GIF播放帧率低于屏幕刷新频率时,通过全局定时器降低所述GIF渲染频率。2.根据权利要求1所述的一种GIF渲染方法,其特征在于,所述根据所述GIF渲染频率进行GIF渲染处理,具体为:当所述全局定时器判定所述当前帧满足渲染条件时,通过RepaintBoundary组件限制渲染区域后,根据所述GIF渲染频率进行GIF渲染处理。3.根据权利要求2所述的一种GIF渲染方法,其特征在于,所述全局定时器判定所述当前帧满足渲染条件,具体为:所述全局定时器回调触发,当所述全局定时器判定所述当前帧能被Gif资源的帧率整除、且所述当前帧的当前视图存在于当前屏幕上时,判定所述当前帧满足所述渲染条件。4.根据权利要求3所述的一种GIF渲染方法,其特征在于,所述当前帧能被Gif资源的帧率整除,具体为:当eventIndex%frames=0时,判定所述当前帧能被Gif资源的帧率整除;其中,eventIndex代表所述当前帧,frames代表所述Gif资源的帧率。5.根据权利要求4所述的一种GIF渲染方法,其特征在于,所述当前帧的当前视图存在于当前屏幕上,具体为:当Layer.addToScene处于触发状态时,判定所述当前帧的当前视图存...
【专利技术属性】
技术研发人员:舒伟,郭曼丽,郑思越,
申请(专利权)人:广州随手玩网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。