新闻中心

EEPW首页 > 嵌入式系统 > 牛人业话 > 图解UCGUI3.90实现GIF动画显示全过程

图解UCGUI3.90实现GIF动画显示全过程

作者:areak时间:2015-04-09来源:电子产品世界收藏

  uc/GUI嵌入式图形系统不依赖于,可以轻松在中高端微控制器上移植成功,具体的移植过程网上已经有很多,按照步骤来大多能成功。目前来说实现虽然uc/gui3.90并不是最新的版本,但却是入门使用的不二选择,是比较经典的版本,网上的教程也较多,适合新手学习。

本文引用地址:http://www.eepw.com.cn/article/272288.htm

  uc/GUI3.98版本中实现了GIF动画显示,比较有意思,但是3.90版本里面并没有实现此功能,今天就一步步教你在ucGUI3.90版本中实现GIF动画显示。

  一、 准备工作

  首先准备好一个工程,要求工程已经实现了UCOS-II和3.90的移植。

  下载3.98版本。

  根据你所选择的液晶的大小,到网上下载一个GIF图片,在百度图片里面有很多。

  二、 GIF图片数据提取

  在ucgui3.90的下载包里面,有一个tool文件夹,里面有一些小工具,这里我们要用到的是Bin2C.exe。双击打开。如下图所示,选择select file,找到你下载的GIF图片,然后点击Convert进行数据转换,转换出来的是一个.C文件,里面是一个数组,比较大,存储了GIF图片的信息。

  下图是转换出来的数据,注意看这个数组的第6、7位和第8、9位,第6、7位值为0X40、0X01,代表的是图片的宽度是320个像素点,也就是0x0140,转换成十进制就是320,同理8、9位是高度信息,0X01E0是480。有的时候在网上找到的图片信息并不准确,所以要以转换出来的数据为准。

  三、 移植

  之前已经说过了,3.90版本不支持GIF解码,所以我们要把3.98版本里面与GIF相关的部分移植过来。

  在3.98版本目录: uC-GUI3.98StartGUICore下找到GUI_Gif.c文件。复制到3.90的该目录下。

  在目录: uC-GUI3.98SampleGUI下面已经给我们提供了一个官方例程,

  把这个文件添加到我们的工程当中。

  然后你会发现MDK会报错,因为有一些和GIF相关的结构体类型及函数是未被定义的,在GUI.h头文件中添加如下声明。

  在GUIType.h中添加如下定义

  再然后调用2DGL_DrawGif.C里面的MainTask()函数,就可以看到效果了。

  四、 显示自己的GIF图片

  把你自己生成的GIF数据复制出来替换2DGL_DrawGif.C里面的数组可以显示,但是有事图片数据很多,数组很大,放在文件里面不便于管理,所以我们直接把生成的.C文件添加到工程当中,

  当然这样加进来还不行,

  还要在2DGL_DrawGif.C 文件中声明外部数组,

  extern unsigned const char gif_dat_1[];

  因为数组较大,所以我们无法事先确定数组的大小,但是函数

  _ShowMovie(*p,length);的第二个参数要求我们传递数组的大小,所以我们需要处理一下,在gif_dat.c里面定义一个全局变量

  long gif_dat1_len=sizeof(gif_dat_1);

  然后在2DGL_DrawGif.C中声明一下。

  extern long gif_dat1_len;

  OK!!!大功告成!!!上个图。

  说明:MainTask()函数里面的_ShowComments(),_ShowSubImages()这两个函数用不到可以屏掉。

  还有_ShowMovie(const char * pFile, long FileSize)函数可能还需要你根据实际情况适当修改。这个就自己来吧,祝你好运!!!



关键词: uc/os UCGUI

评论


相关推荐

技术专区

关闭