Evo jedan mali primer, kako na jednostavan nachin mozesh da izvuchesh podatke iz BMP-headera.
A za sve ostalo :
http://www.google.com/search?h...+header&btnG=Google+Search
Code:
#include <stdio.h>
#include <stdlib.h>
void LoadBMP (char *FileName)
{
struct BMPHeader {
signed short bfType;
unsigned long bfSize,
bfReserved,
bfOffBits,
biSize,
biWidth,
biHeight;
unsigned short biPlanes,
biBitCount;
unsigned long biCompression,
biSizeImage,
biXPelsPerMeter,
biYPelsPerMeter,
biClrUsed,
biClrImportant;
} __attribute__((packed)) Header;
FILE *BMPFile;
BMPFile = fopen (FileName, "rb");
if (BMPFile == NULL) {strcat (FileName,".BMP");
BMPFile = fopen (FileName, "rb");
if (BMPFile == NULL) { printf ("::Fajl ne moze da se otvori::");
return;
}
};
long ada;
fread (&Header, 54, 1, BMPFile);
printf("::bfType::%d\n",Header.bfType);
printf("::bfSize::%ld bytes\n",Header.bfSize);
printf("::bfReserved::%d\n",Header.bfReserved);
printf("::bfOffBits::%d\n",Header.bfOffBits);
printf("::biSize::%d\n",Header.biSize);
printf("::biWidth::%lu pixels\n",Header.biWidth);
printf("::biHeight::%d pixels\n",Header.biHeight);
printf("::biPlanes::%d\n",Header.biPlanes);
printf("::biBitCount::%d\n",Header.biBitCount);
printf("::biCompression::%lu\n",Header.biCompression);
printf("::biSizeImage::%d\n",Header.biSizeImage);
printf("::biXPelsPerMeter::%d\n",Header.biXPelsPerMeter);
printf("::biYPelsPerMeter::%d\n",Header.biYPelsPerMeter);
printf("::biClrUsed::%d colors\n",Header.biClrUsed);
printf("::biClrImportant::%d colors\n",Header.biClrImportant);
fclose(BMPFile);
};
int main(int argc, char *argv[])
{
char FileName[80];
char ime;
scanf("%s",&FileName);
LoadBMP(FileName);
system("PAUSE");
return 0;
}