初级会员

- 积分
- 143
- 金钱
- 143
- 注册时间
- 2012-8-23
- 在线时间
- 0 小时
|
硬件环境:战舰板+7寸电容屏
软件环境:uC/OS 2.86 + uC/GUI 3.98
想在GUI里面显示gif动图,我看3.98版本的uC/GUI是支持gif动图的,有int GUI_GIF_Draw(const void * pGIF, U32 NumBytes, int x0, int y0) 和int GUI_GIF_DrawEx(const void * pGIF, U32 NumBytes, int x0, int y0, int Index) 两个函数可以绘制gif动图。但是不大会用啊,GUI_GIF_DrawEx()最后有一个Index的参数,不知道具体是什么意思,貌似是一帧的意思?好像变化这个就可以显示gif的不同画面。
我是先把gif图片转化为一个很大的数组,然后存在芯片flash里面,在WM_PAINT消息下调用GUI_GIF_DrawEx()函数绘制gif
case WM_PAINT:
WM_GetClientRect(&Rect);
GUI_GIF_DrawEx(&gif, 37641, 0, 0, 0);
这样的话只显示那一帧的画面
如果加上循环
case WM_PAINT:
WM_GetClientRect(&Rect);
for(i=0; i<50; i++)
GUI_GIF_DrawEx(&gif, 37641, 0, 0,i);
也不行,刷屏就非常之慢
求各位给我讲一讲我这个思路是不是错误的,或者怎样可以实现顺利显示gif动图?
|
|