Lire une structure (fichier bitmap) [C] - C - Programmation
Marsh Posté le 28-10-2003 à 13:18:11
C du bitmap windows? si c ça y a deux chose à savoir:
1/ Les lignes sont allignées sur 32 bits.
2/ Le bitmap est écrit à l'envers, ou plutôt tête en bas, c'est à dire que la première ligne lue dans le fichier est celle du bas de l'image.
Marsh Posté le 28-10-2003 à 13:18:12
#pragma pack(x)
x = 1 pour aligner sur 1 octet
Tu mets rien pour revenir à l'alignement par défaut
Marsh Posté le 28-10-2003 à 13:21:47
LetoII a écrit : C du bitmap windows? si c ça y a deux chose à savoir: |
heu oui, c'est le format d'image.
Le bitmap écrit à l'envers, c'est bien sûr pour les données ? ou alors le bitmap_info_header est écrit aussi à l'envers ?
Marsh Posté le 28-10-2003 à 13:23:33
void_ppc a écrit : |
les données
mas ca pour le moment tu t'en fous, si ton header est pourri a la base c pas bon
(par contre leto a souligné un point tres important, l'alignement, fait bien gaffe a ca + tard)
Marsh Posté le 28-10-2003 à 13:24:23
*Syl* a écrit : #pragma pack(x) |
c'était bien ca.
Et cet alignement, ca dépends des compilos et de l'architecture ? ou alors ce code marchera sous win/linux x86/ppc ? (l'alignement des octets change tout non ?)
Marsh Posté le 28-10-2003 à 13:36:21
void_ppc a écrit : |
Tant que le compilo reconnait la directive #pragma pack(x)
c bon. D'un autre côté je trouve que c généralement une mauvaise idée de lire une structure directement depuis un ficheir binnaire. La lecture champ à champ permet de s'afranchir de ce genre de problème, parcontre c un poil moi efficace.
Marsh Posté le 28-10-2003 à 13:15:35
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 :
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