在制作界面时我们需要使用到一些开机界面或动画效果,如果使用图片通过图片转换软件生成的彩色图片太大,以宝马开发板开机动画“宝马奔跑”为例,若使用120*80的照片转换成16为彩色数组需要使用到120*80*16/2=19200字节,动画使用5帧图片组成,即需要占用Flash空间约96K,对于Flash容量为512K的LPC1768芯片还是一个比较大的空间。当我们没有需要使用彩色时可以使用单色图片作为代替(即使用类似于点阵字符的存放),其占用Flash空间大概为120*80/8*5=6000字节,相对于彩色图片的96K是小得多了,下面介绍一下“宝马奔跑”动画的制作过程吧:
1、在网上收索一个骏马奔腾的gif动画,保存到本地图片收藏里面,这里使用的是http://www.dabaoku.com/gif/dongwu/006/index.htm的一个gif素材。2、使用gif分解器将gif动画进行分解,这里直接在网上收索“gif分解”,选择一个在线分解
3、打开
gif动画,即可看到如下图片分解信息,可以看到动画分解成为5帧图片,然后点击保存所有帧到本地文件夹即可。
4、解压保存的图片包,可以看到生成
5张图片,将图片用Windows自带软件“画图”打开,设置图片属性为黑白,将图片移到适当的位置设置大小为120*80,如第一张图得到如下图片,需要用橡皮擦将多余的地方擦除得到下面的图片(若有美术功底的朋友可以使用photoshop来进行图片处理哦),将五张图片都这样处理另存为单色图片bmp
5、使用图片转换软件“Image2Lcd”将图片转换成数组,设置输出灰度为单色,即可得到骏马的图片数组。
6、添加图片显示函数,其图片显示函数与字符显示相同,
char *bmp指向图片的首部由于其长宽为120*80,120/8=15,因此每15字节代表一行,这里可以把图片显示理解为一个120*80的大字符,每次读取15字节显示一行,然后显示下一行,直到80行显示完成。这里有一点值得注意的是bitmap_ptr=bmp+1199;将图片指针指向图片末尾,这是由于在LCD初始化时设置为自动增长方向为从右下脚开始向左向上,而图片取模的时候是左上角开始向右向下,因此会有略微的区别
7
、程序中循环显示5张图片即可形成“宝马奔跑”的动画,按下按键INT0跳出循环,改变OSTimeDly延时时间可改变奔跑速度。