Bonjour, je suis en train de programmer une petite application qui manipule des bmp (format très simple), mais je rencontre un problème lors de l'écriture d'une bitmap.
J'ai crée une structure représentant le header d'une bitmap:Les pixels sont quant à eux dans la classe bitmap qui reprend cette structure et ils sont enregistrés sans aucun problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 typedef struct TagHBMP{ WORD Sign; DWORD Csize; DWORD Resv; DWORD Offset; DWORD HeadSize; DWORD Width; DWORD Heigth; WORD Plan; WORD Depth; DWORD Comp; DWORD ImSize; DWORD HRez; DWORD VRez; DWORD Palette; DWORD ImPalette; }HBMP;
Le problème est le suivant: lorsque j'enregistre en bloc cette structure (qui fait 54octets) le programme en copie 56 en injectant 1 octet après les 2 premiers. La fonction utilisée est un simple fwrite mais le problème ne vient pas de là vu que quand je demande la taille de ma structure il me retourne qu'elle fait 56 octets...Et ça cela reste un mystère, je n'ai jamais lus où appris que lors de la création d'une structure sa taille dépassait la somme de ses composantes.
Toute aide est donc la bienvenue.
ps: au cas où certains de connaissent pas les WORD et DWORD, WORD = 2 octets, DWORD = 4 octets.
Partager