#include <stdio.h>
//open头文件
#include <sys/stat.h>
#include <fcntl.h>
//write 头文件
#include <unistd.h>
int main()
{
char bmpbuf[1024*600*3] = {0}; //存放图片的颜色数据
int lcdbuf[1024*600] = {0}; //lcd屏幕的数据
int i;
//1.打开lcd屏幕文件
int lcd_fd = open("/dev/fb0",O_RDWR);
if(lcd_fd == -1)
{
printf("open lcd file failed");
}
//2.打开图片文件
int bmp_fd = open("guoqi.bmp",O_RDWR);
if(bmp_fd == -1)
{
printf("open bmp file failed");
}
//3.跳过54字节大小图片头信息(lseek)
lseek(bmp_fd,54,SEEK_SET);
//读取图片文件的颜色表
read(bmp_fd,bmpbuf,1024*600*3);
//4.将图片颜色进行字节转换(左移运算符)
for(i=0;i<1024*600;i++)
{ //ARBG B G <<8 R<<16 A(0)
lcdbuf[i] = bmpbuf[i*3] | bmpbuf[i*3+1]<<8 | bmpbuf[i*3+2]<<16 | 0x00<<24;
}
//写入 lcd屏幕文件
write(lcd_fd,lcdbuf,1024*600*4);
//5.关闭lcd屏幕文件、图片文件
close(bmp_fd);
close(lcd_fd);
return 0;
}
如果觉得《mfc读取bmp文件_LIUNX 工程bmp.c 显示图片 开发板出来的图片只有一个角 求大佬解决...》对你有帮助,请点赞、收藏,并留下你的观点哦!