void_ppc | Bonjour,
Je suis en train d'essayer de faire un prog pour lire un fichier bitmap, j'ai la bonne structure du fichier, mais il ne lit pas les bonnes valeurs de l'entête pour le moment.
J'ai entendu parler d'une histoire de padding et d'alignement, mais je n'ai pas tout compris.
Voilà le code :
Code :
- #include <stdio.h>
- typedef struct
- {
- char Magic[2];
- int FileSize;
- short Reserved0;
- short Reserved1 ;
- int Offset;
- } bitmap_file_header_struct;
- typedef struct
- {
- int Size;
- int Width;
- int Height;
- short Planes;
- short Count;
- int Compr;
- int SizeIm;
- int Xpels;
- int Xypels;
- int ClrUsed;
- int ClrImp;
- } bitmap_info_header_struct;
- void lire(void);
- bitmap_file_header_struct file_header;
- bitmap_info_header_struct info_header;
- int main(void)
- {
- lire();
- return 0;
- }
- void lire(void)
- {
- FILE *f;
- f = fopen("full.bmp", "r" );
- if (f == NULL)
- {
- printf("erreur lecture" );
- exit(1);
- }
- fread(&file_header, sizeof(file_header), 1, f);
- fread(&info_header, sizeof(info_header), 1, f);
- printf("Signature :%c%c\n", file_header.Magic[0], file_header.Magic[1]);
- printf("Taille fichier :%i - Offset :%i\n", file_header.FileSize, file_header.Offset);
- printf("Width :%i - Height :%i\n",info_header.Width, info_header.Height);
- fclose(f);
- }
|
Voilà, par exemple si je créer avec gimp un fichier bitmap de 256x256, le programme ne renvoi pas les bonnes valeurs.
Je prog sous x86 Linux gcc-3.3 -Wall -ansi -pedantic
Pour la structure du fichier, je l'ai cherchée ici :
http://www.fortunecity.com/skyscra [...] ffrmt.html
Merci Message édité par void_ppc le 28-10-2003 à 13:17:55
|