#include <stdio.h>
typedef signed char INT8;
typedef signed short INT16;
typedef signed int INT32;
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned int UINT32;
typedef struct tagBITMAPINFOHEADER
{
UINT16 ID;
UINT32 biSize;
UINT32 biReserve;
UINT32 biDataOffset;
UINT32 biHeaderSize;
UINT32 biWidth;
UINT32 biHeight;
UINT16 biPlanes;
UINT16 biBitCount;
UINT32 biCompression;
UINT32 biSizeImage;
UINT32 biXPelsPerMeter;
UINT32 biYPelsPerMeter;
UINT32 biColor;
UINT32 biClrImportant;
}BitmapIfoHeader;
static void ReadBmpHeader(FILE *fp, BitmapIfoHeader *pBmpHeader)
{
if(pBmpHeader==NULL || fp==NULL)
return;
fread((void*)&pBmpHeader->ID, 1, 2, fp);
fread((void*)&pBmpHeader->biSize, 1, 4, fp);
fread((void*)&pBmpHeader->biReserve, 1, 4, fp);
fread((void*)&pBmpHeader->biDataOffset, 1, 4, fp);
fread((void*)&pBmpHeader->biHeaderSize, 1, 4, fp);
fread((void*)&pBmpHeader->biWidth, 1, 4, fp);
fread((void*)&pBmpHeader->biHeight, 1, 4, fp);
fread((void*)&pBmpHeader->biPlanes, 1, 2, fp);
fread((void*)&pBmpHeader->biBitCount, 1, 2, fp);
fread((void*)&pBmpHeader->biCompression, 1, 4, fp);
fread((void*)&pBmpHeader->biSizeImage, 1, 4, fp);
fread((void*)&pBmpHeader->biXPelsPerMeter, 1, 4, fp);
fread((void*)&pBmpHeader->biYPelsPerMeter, 1, 4, fp);
fread((void*)&pBmpHeader->biColor, 1, 4, fp);
fread((void*)&pBmpHeader->biClrImportant, 1, 4, fp);
}
int main(int argc,char *argv[])
{
FILE *fp = NULL;
BitmapIfoHeader bmpInfo = {0};
if(argc<1)
return 0;
fp = fopen(argv[1], "rb");
if(fp == NULL)
return 0;
ReadBmpHeader(fp, &bmpInfo);
printf("ID = %d/n", bmpInfo.ID);
printf("biSize = %d/n", bmpInfo.biSize);
printf("biDataOffset = %d/n", bmpInfo.biDataOffset);
printf("biHeaderSize = %d/n", bmpInfo.biHeaderSize);
printf("biWidth = %d/n", bmpInfo.biWidth);
printf("biHeight = %d/n", bmpInfo.biHeight);
printf("biBitCount = %d/n", bmpInfo.biBitCount);
printf("biCompression = %d/n", bmpInfo.biCompression);
printf("biSizeImage = %d/n", bmpInfo.biSizeImage);
printf("biXPelsPerMeter = %d/n", bmpInfo.biXPelsPerMeter);
printf("biYPelsPerMeter = %d/n", bmpInfo.biYPelsPerMeter);
fclose(fp);
return 1;
}
读取 bmp 文件头信息, read bmp infomation
最新推荐文章于 2022-09-30 08:53:50 发布