bmp刷图是比较简单的,它需要注意的是bmp在windows系统下会自动生成54个字
节的头文件结构体信息,如果要在知道bmp图的图像尺寸的话,就可以用lseek函数直接跳过这54个字节直接读取自己想要的RGB图像数据,bmp图像不同的是它的图像读取顺序,是从左到右,从上到下,所以要刷到LCD屏幕中显示,需要进行颠倒图像数据。还有就是bmp图像RGB图像是3个字节即24位,但LCD一个像素点是4个字节,需要每3个字节刷到4个字节,跳过一个字节。
因为在这次项目中,不是简单的把图刷进去,而是对不符合屏幕尺寸的图像可以自动识别并进行放大缩小来适应屏幕,所以事先是不知道图片的尺寸的,要利用bmp的头文件信息结构体知道该图像的长宽,所以就不能跳过这54个字节,而是跳过14的字节。以上是bmp图刷到LCD屏幕的所有注意事项,下面是实现代码。
#include "../inc/include.h"
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef long LONG;
typedef struct tagBITMAPINFOHEADER
{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG