📄 bmp_readheader.c
字号:
#include "stdio.h"
#include "stdlib.h"
#include "BMP_File_Header.h"
BITMAPFILEHEADER sBMP_FileHeader; //BMP文件头
BITMAPINFO sBMP_Info; //BMP信息头数据,包括调色板的数组(最大256个RGBQUAD数据)
//==================================================================//
//
//
//
//==================================================================//
unsigned int BMP_Read_Header(unsigned int *File_Add)
{
int iTemp = 0,i=0,j=0,m=0;
sBMP_FileHeader = *(BITMAPFILEHEADER *)File_Add;
if(sBMP_FileHeader.bfTYPE!=0x4D42)
return 0;
else
{
File_Add = File_Add+sizeof(BITMAPFILEHEADER);
sBMP_Info.bmiHeader = *(BITMAPINFOHEADER *)File_Add; //获取文件类型,即从文件头
File_Add = File_Add+sizeof(BITMAPINFOHEADER); //长度去判断0x28为BMP
switch(sBMP_Info.bmiHeader.biBITCount)
{
case 1: j = 1; break;
case 4: j = 16; break;
case 8: j = 256; break;
default: return 0; break;
}
i = sizeof(RGBQUAD);
iTemp = j*i;
sBMP_Info.P_bmiColors = (RGBQUAD *)malloc(iTemp);
for(m=0;m<j;m++)
{
*(sBMP_Info.P_bmiColors++) = *(((RGBQUAD *)File_Add)++);
}
return 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -