今天花了一整天时间才搞好LCD12863显示2色BMP图片(累啊 :) )。
自已还写了一个2色BMP图片到程序数组的转换小程序bmp2txt.exe
读取2色BMP图片,BMP的头结构我就不多说了,很多书上都有。
这里我们主要注意以下几个地方。
BMP文件偏移
0x0a 图像数据的开始位置
0x12 图像的宽度
0x16 图像的高度
0x1e 图像是否压缩
(这里我们只讨论不压缩的,用windows的画笔画一幅画存盘的时候选单色就行了)
BMP的2色图像是倒着存放的,即第一个数据字节表示是的图像最后一行的前8
个点"1"表示白色,"0"表示黑色(当然也可跟椐调色板来设置)
BMP图片数据每行要DWORD对齐,也是一行的字节数必须为4的倍数,如一行的数
据只有8个点为0xff 而BMP表示为 0xff 0x00 0x00 0x00
然后用bmp2txt.exe 将所画的2色图转为程序代码,copy到程序中编译就OK了。
关键代码:
/*
读BMP图像 2色 未压缩
*/
#define BMP_HEIGHT 0x16
#define BMP_WIDTH 0x12
#define BMP_COMPRESSION 0x1e
#define BMP_bfOffBits 0x0