#include <stdio.h>
#include<stdlib.h>
#pragma pack(1)
typedef struct BITMAPFILEHEADER {
unsigned short bfType;
unsigned int bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned int bfOffBits;
} BITMAPFILEHEADER;
typedef struct BITMAPINFOHEADER {
unsigned int biSize;
long biWidth;
long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned int biCompression;
unsigned int biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
unsigned int biClrUsed;
unsigned int biClrImportant;} BITMAPINFOHEADER;
int main(){
FILE *fp;
printf ("%d %d\n",sizeof(BITMAPFILEHEADER),sizeof(BITMAPINFOHEADER));
fp=fopen("3.bmp","rb");
if (fp==NULL) printf ("wrong");
if (fp!=NULL){
fseek(fp,sizeof(BITMAPFILEHEADER),0);
BITMAPINFOHEADER head;
fread(&head,sizeof(BITMAPINFOHEADER),1,fp);
printf("%d %d",head.biWidth,head.biHeight);
fclose (fp);}
return 0;
}
#include<stdlib.h>
#pragma pack(1)
typedef struct BITMAPFILEHEADER {
unsigned short bfType;
unsigned int bfSize;
unsigned short bfReserved1;
unsigned short bfReserved2;
unsigned int bfOffBits;
} BITMAPFILEHEADER;
typedef struct BITMAPINFOHEADER {
unsigned int biSize;
long biWidth;
long biHeight;
unsigned short biPlanes;
unsigned short biBitCount;
unsigned int biCompression;
unsigned int biSizeImage;
long biXPelsPerMeter;
long biYPelsPerMeter;
unsigned int biClrUsed;
unsigned int biClrImportant;} BITMAPINFOHEADER;
int main(){
FILE *fp;
printf ("%d %d\n",sizeof(BITMAPFILEHEADER),sizeof(BITMAPINFOHEADER));
fp=fopen("3.bmp","rb");
if (fp==NULL) printf ("wrong");
if (fp!=NULL){
fseek(fp,sizeof(BITMAPFILEHEADER),0);
BITMAPINFOHEADER head;
fread(&head,sizeof(BITMAPINFOHEADER),1,fp);
printf("%d %d",head.biWidth,head.biHeight);
fclose (fp);}
return 0;
}