更多资料请点击:我的目录
本篇仅用于记录自己所学知识及应用,代码仍可优化,仅供参考,如果发现有错误的地方,尽管留言于我,谢谢。
这一片是关于开发板800480的LCD显示屏显示BMP图片的,可以通过参数设置,将各种像素大小的BMP图片在任意位置显示,在800480像素范围内的BMP图像可以直接在任意位置显示,而大于800*480像素范围的则需要先将BMP图片先缩小,再设置位置。显示方式是使用内存映射方式(mmap),刷图显示速度比较快。
下面为封装好的BMP图像显示函数
//显示任意位置大小缩放的BMP图片
bool showbmp(char *bmppath, int n)//调用函数传参,bmppath为路径名,n缩小倍数
{
int w = 0;
int h = 0;
int src = open(bmppath , O_RDWR);//打开BMP图片文件
lseek(src, 18 ,SEEK_SET);//获取BMP图片的宽w信息
read(src, &w, 4);
lseek(src, 22 ,SEEK_SET);//获取BMP图片的高h信息
read(src, &h, 4);
char bmpbuf[w*h*3];
int lcdbuf[w*h];
int tempbuf[w*h];
lseek(src, 54, SEEK_SET);//跳过BMP图片头信息字节
int rubbish = (4-(w*3)%4)%4;//BMP图片字节不能被4整除时,加入的垃圾字节数
for(i