Bonjour tous le monde !
J'ai un petit soucis pour la lecture d'une image de type pnm. Pour ceux qui ne savent pas ce que c'est, ce type d'image est représenté dans un fichier gràce à un encodage de type ascii. Une image PNM est composé d'une en-tête, des dimensions ainsi que la variation des couleurs des pixels, le reste est une matrice qui représente l'image et qui affiche les pixels en couleurs.
Il faudrait que je puisse ignorer des lignes de commentaires commençant par '#' mais c'est là que je bloque... J'ai essayer de faire quelque chose qui ressemble à ça:
le nbr_magique représente 'identifiant de l'image qui se trouve en première ligne et qui doit s'écrire 'P3'.
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
19
20
21
22 while(!feof(file)) { if(fgetc(file)=='#')//je récupère le caractère # pour ignorer le commentaire { while(fgetc(file) != '\n');// si je suis sur une ligne qui correspond à un commentaire je déplace mon curseur jusq'à la ligne suivante. } if(fscanf("file, "%u %u), &colonnes, &lignes)==2) { fclose(file); creation_pixel(lignes, colonnes, fichier);//j'appel une fonction d'allocation d'une matrice de fimension "colonnes" et "lignes" et j'écris le tous dans un autre fichier. } if(fscanf(file, "%s", nbr_magique[0])==1) { if(nbr_magique[0]!='P') { printf("fichier corrompu.\n\n"); return -1; }else while(fgetc(file)!='\n'); // je déplace mon curseur pour aller à la ligne suivante. } }
Bien évidemment ce que j'ai fait ne fonctionne pas.
un fichier de type ppm peut ressembler donc à ça:
P3 #commentaire 2 2 // colonnes et lignes 256 // variation de couleur 212 23 // matrice 323 33 //matrice
Partager