cs_didinel
Messages postés7Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention21 août 2005
-
18 août 2005 à 16:24
cs_didinel
Messages postés7Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention21 août 2005
-
19 août 2005 à 10:45
Bonjour à tous,
Je souhaiterais savoir comment on peut récupérer la table des couleurs et les données d'une image BMP en parcourant seulement le fichier bmp.
Je développe un programme console en C traditionnel qui a pour but de récopier petit à petit le fichier BMP (FILE *fSrc) dans un fichier RTF (FILE *fDest) . Je recopie le fichier petit à petit pour pouvoir insérer les balises nécessaires pour la lecture de l'image dans le fichier RTF.
J'arrive à récupérer correctement l'entête du fichier et l'entête d'information mais pas la table des couleurs et les données de l'image.
Est ce que quelqu'un aurait une solution à mon problème?
La première partie en bleue semblerait représenter l'entête du fichier que j'arrive à bien récupérer. Ce qu'il me manque c'est la seconde partie en rouge. Logiquement cette partie devrait correspondre aux données de l'image mais là je ne sais pas comment je fais.
cs_BDel
Messages postés4Date d'inscriptionvendredi 9 juillet 2004StatutMembreDernière intervention 1 octobre 2005 18 août 2005 à 23:09
Évidemment il faut que ce soit une image de 256 couleurs ou
moins pour quil y ait une table.
Si tu lis correctement les entêtes, la table est dedans.
Le Fichier BMP commence par la structure
BITMAPFILEHEADER.
La structure BITMAPINFO suit immédiatement.
Ces structures sont décrites dans <WinGdi.h>.
BITMAPINFO.bmiHeader.biClrUsed te donne le nombre de
couleur. Attention ce peut être 0 et dans ce cas cest 256 pour du 8 bits, 16
pour du 4 etc. (1 << BITMAPINFO.bmiHeader.biBitcount).
Ensuite tu nas quà utiliser
BITMAPINFO.bmiHeader.bmiColors[] pour retrouver tes couleurs (tableau de
RGBQUAD).
Les données de limage suivent. Attention, elles sont
souvent compressées en RLE pour du 256 couleurs.
BITMAPINFO.bmiHeader.biCompression te lindique.