📄 bmp16.c
字号:
typedef struct
{
uint8 pic_head[2]; //1
uint16 pic_size_l; //2
uint16 pic_size_h; //3
uint16 pic_nc1; //4
uint16 pic_nc2; //5
uint16 pic_data_address_l; //6
uint16 pic_data_address_h; //7
uint16 pic_message_head_len_l; //8
uint16 pic_message_head_len_h; //9
uint16 pic_w_l; //10
uint16 pic_w_h; //11
uint16 pic_h_l; //12
uint16 pic_h_h; //13
uint16 pic_bit; //14
uint16 pic_dip; //15
uint16 pic_zip_l; //16
uint16 pic_zip_h; //17
uint16 pic_data_size_l; //18
uint16 pic_data_size_h; //19
uint16 pic_dipx_l; //20
uint16 pic_dipx_h; //21
uint16 pic_dipy_l; //22
uint16 pic_dipy_h; //23
uint16 pic_color_index_l; //24
uint16 pic_color_index_h; //25
uint16 pic_other_l; //26
uint16 pic_other_h; //27
uint16 pic_color_p01; //28
uint16 pic_color_p02; //29
uint16 pic_color_p03; //30
uint16 pic_color_p04; //31
uint16 pic_color_p05; //32
uint16 pic_color_p06; //33
uint16 pic_color_p07; //34
uint16 pic_color_p08; //35
}BMP_HEAD;
BMP_HEAD bmp;
typedef struct
{
uint16 x;
uint16 y;
uint8 r;
uint8 g;
uint8 b;
}BMP_POINT;
BMP_POINT point;
FATFS fs; // Work area (file system object) for logical drive
FIL fsrc, fdst; // file objects
char buffer[4096*2]; // file copy buffer
FRESULT res; // FatFs function common result code
u16 br, bw; // File R/W count
u32 tx,ty,r_data,g_data,b_data;
f_mount(0, &fs);
//while(1){
res = f_open(&fsrc, "1.BMP", FA_OPEN_EXISTING | FA_READ);
res = f_read(&fsrc, &bmp, sizeof(bmp), &br);
printf(" 下一个文件信息 ");
printf("文件类型: BMP");
printf("大小: %d 字节 /n",(bmp.pic_size_h<<16)|(bmp.pic_size_l));
printf("宽度: %d /n ",(bmp.pic_w_h<<16)|(bmp.pic_w_l));
printf("高度: %d /n "(bmp.pic_h_h<<16)|(bmp.pic_h_l));
printf("水平分辨率: %d /n ", (bmp.pic_dipx_h<<16)|(bmp.pic_dipx_l));
printf("垂直分辨率: %d /n",(bmp.pic_dipy_h<<16)|(bmp.pic_dipy_l));
printf("位深度: %d /n "bmp.pic_dip);
printf("帧数: %d /n "bmp.pic_bit);
f_close(&fsrc);
/*
if((bmp.pic_head[0]=='B')&&(bmp.pic_head[1]=='M'))
{
res = f_lseek(&fsrc, ((bmp.pic_data_address_h<<16)|bmp.pic_data_address_l));
for(ty=0;ty<bmp.pic_h_l;ty++)
{
f_read(&fsrc, buffer, (bmp.pic_w_l)*3, &br);
for(tx=0;tx<bmp.pic_w_l;tx++)
{
r_data = *(tx*3 +2+buffer);
g_data = *(tx*3 +1+buffer);
b_data = *(tx*3 +0+buffer);
if(tx<240)
{
point.x = tx;
point.y = bmp.pic_h_l-1-ty;
point.r = r_data;
point.g = g_data;
point.b = b_data;
}
}
}
}
f_close(&fsrc);
*/
// GUI_Point( ((BMP_POINT*)lcdt)->x ,((BMP_POINT*)lcdt)->y ,
// RGB888ToRGB565( ((BMP_POINT*)lcdt)->r,((BMP_POINT*)lcdt)->g,((BMP_POINT*)lcdt)->b ));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -