加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

【AWTK使用经验】如何实现序列帧动画

07/17 14:44
1080
阅读需 5 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

AWTK是基于C语言开发的跨平台GUI框架。《AWTK使用经验》系列文章将介绍开发AWTK过程中一些常见问题与解决方案,例如:如何加载外部资源?如何设计自定义进度条?这些都会在系列文章进行解答。

假设目前想在AWTK中显示炫酷流畅的图片动画,此时可以用video_image控件来播放序列帧动画。本篇文章将介绍该控件的原理和使用方法。

图1 ZTP800示教器运行video_image控件demo效果

video_image控件播放序列帧动画优点

video_image控件采用了帧间差异的图像算法,在压缩位图时会计算并保存每一帧之间的脏矩形区域和数据,接着将这些差异数据压缩成自定义的视频文件,最后再采用lz4算法对视频文件进一步压缩。在video_image控件播放视频文件时会先用lz4算法解压视频文件,再将帧间差异解析组合成位图播放。下面是video_image控件播放序列帧相比较MP4、MJPG与GIF等常见格式的优点:

对比格式 播放序列帧方式的优点
MJPG MJPG动画文件占用空间大,JPG的解压速度慢;video_image的帧间差异图像算法能够很大程度降低空间上的消耗,包括内存和文件系统空间,同时解压速度也会更快。
GIF GIF只支持8位色,并且不支持半透;而video_image动画可支持32位色,并且支持半透显示。
MP4 MP4压缩率较高 ,解压位图需要消耗较大性能,需要依赖硬件解码才能流畅播放;而video_image控件可以用在中低端平台,解码消耗性能会较低,动画会更流畅。

video_image控件的使用方法

首先,在AWStudio插件列表安装awtk-widget-video-image控件,并编译video_image控件工程,会在awtk-widget-video-image/bin目录下生成相关工具:gif_to_frame_gen工具可以将GIF转换成一张张位图序列帧;diff_image_to_video_gen工具可以将这些位图序列帧压缩成video_image控件支持播放的自定义视频文件。

图2 AWStudio插件列表的video_image控件将GIF转换成位图序列帧

假设目前的GIF名称为zlg.gif,可以在bin文件夹输入下面命令将GIF转成位图序列帧,工具的详细参数可以看控件目录下的README.md文档:

./gif_to_frame_gen.exe ./zlg.gif ./my_image/

图3 使用工具将GIF转成位图序列帧

将位图序列帧合成自定义视频文件

同样是在bin目录下可以使用diff_image_to_video_gen工具将位图序列帧合成自定义视频文件。工具的设置的参数比较多,详细参数说明可以看控件目录下的README.md文档,示例命令如下:

./diff_image_to_video_gen.exe ./my_image/ frame%d ./my_image/video_gif RGB565 30

图4 diff_image_to_video_gen工具生成自定义视频文件

在AWTK程序播放序列帧

将上面生成的自定义视频文件通过AWStudio导入到资源浏览器的“其他数据”分类项,接着再设置video_image控件的video_name属性为视频文件名称,最后打包编译运行程序即可。

图5 添加与设置视频文件到应用中

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
FTLF8519P3BTL 1 Finisar Corporation Transceiver, 840nm Min, 860nm Max, 2125Mbps(Tx), 2125Mbps(Rx), LC Connector, Panel Mount, ROHS COMPLIANT PACKAGE
$218.87 查看
SN74LVC1G17DCKR 1 Texas Instruments Single 1.65-V to 5.5-V buffer with Schmitt-Trigger inputs 5-SC70 -40 to 125

ECAD模型

下载ECAD模型
$0.38 查看
EPCQ128ASI16N 1 Intel Corporation Memory Circuit, 16MX8, CMOS, PDSO16, SOIC-16

ECAD模型

下载ECAD模型
$36 查看
致远电子

致远电子

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。

广州致远电子股份有限公司成立于2001年,注册资金5000万元,国家级高新技术认证企业,广州市高端工控测量仪器工程技术研究开发中心,Intel ECA全球合作伙伴和微软嵌入式系统金牌合作伙伴。收起

查看更多

相关推荐

电子产业图谱

ZLG官方账号,一个汇聚500名工程师的研发测试分享平台,为您提供电子世界领先的产品技术与行业解决方案.