24位bmp图片的显示
之前在使用a58系列的开发板时做过bmp图片的显示,博主在这里想将其记录下来。
在图像显示中
常见的图像格式:bmp jpg png
博主在这里分享的是bmp图片的显示
首先,我们得了解他的编码特点
bmp图片编码的特点:
1.每个像素点占3个字节,分别存储的是RGB(红绿蓝三原色)的数值
2. bmp是微软公司发明的一种图片格式,在存储的时候RGB就是颠倒
3. bmp图片在存储的时候,上下也是颠倒
4.bmp图片有54字节的头信息
5.但是lcd要求每个像素点占4个字节,多出来的一个字节用于存放图片的透明度信息(A),换句话来说,lcd上要求是ARGB,而图片是RGB
显示bmp图片思路:
1.打开bmp图片
2.打开lcd
3.读取bmp图片像素点的RGB值
4.将读取的颜色值写入到lcd中
5.关闭
下面是博主自己封装的一个显示函数
```c
//x和y:你定义的显示图片的位置的横坐标和纵坐标
//w和h:你要显示图片的长和宽
//bmppath:图片的路径
int show_anybmp(int x,int y,int w,int h,char *bmppath)
{
//定义bmp图片的文件描述符
int fd1;
//定义lcd驱动的文件描述符
int fd2;
//用int类型的数组存放ARGB
int lcdbuf[w*h];
//定义一个int类型的指针在显存中的首地址
int *lcdmem;
int i;
int j;
//定义数组存放像素点的RGB
char bmpbuf[w*h