[C] Recuperation des donnes d un fichier pgm
Résolu
niark
-
hulk -
hulk -
Salut
J ai un probleme assez facile a resoudre a mon avis mais pour le moment je bloque 1 peu...
en fait faut que je recupere les valeurs des pixels d un fichier pgm en C pour pouvoir apres faire un traitement dessus ( ici c est un filtre de sobel)
Je recupere bien l en tete et les differents valeurs pour la resolution de l image ainsi que la valeur max d un pixel mais bizarrememt je n arrive pas avec les valeurs des pixels
fgets (info, 10, fpr);
if (strncmp (info, "P2", 2) != 0)
{
printf ("Mauvais format de fichier\n");
fclose (fpr);
fclose (fpw);
}
fgets (info, 70, fpr);
if ((strncmp (info, "#", 1)) == 0)
{
fgets (info, 10, fpr);
}
sscanf (info, "%d %d", &largeur, &hauteur);
Ca fonctionne bien pour les en tetes mais par contre ca ne fonctionne pas pour les valeurs des pixels. Ca vient probablement du fait que je prends trop de caracteres avec le fgets donc je ne sais pas trop combien d entier je recupere
j ai essaye d utiliser fgetc mais j aimerai bien stocker la valeur du pixel dans un tableau pour faire le traitement avant de l ecrire dans le fichier... et vu que la valeur renvoye par fgetc ne correspond pas a la valeur du pixel je ne sais pas trop comment faire pour continuer
je me complique probablement mais je suis bloque pour le moment lol merci :)
J ai un probleme assez facile a resoudre a mon avis mais pour le moment je bloque 1 peu...
en fait faut que je recupere les valeurs des pixels d un fichier pgm en C pour pouvoir apres faire un traitement dessus ( ici c est un filtre de sobel)
Je recupere bien l en tete et les differents valeurs pour la resolution de l image ainsi que la valeur max d un pixel mais bizarrememt je n arrive pas avec les valeurs des pixels
fgets (info, 10, fpr);
if (strncmp (info, "P2", 2) != 0)
{
printf ("Mauvais format de fichier\n");
fclose (fpr);
fclose (fpw);
}
fgets (info, 70, fpr);
if ((strncmp (info, "#", 1)) == 0)
{
fgets (info, 10, fpr);
}
sscanf (info, "%d %d", &largeur, &hauteur);
Ca fonctionne bien pour les en tetes mais par contre ca ne fonctionne pas pour les valeurs des pixels. Ca vient probablement du fait que je prends trop de caracteres avec le fgets donc je ne sais pas trop combien d entier je recupere
j ai essaye d utiliser fgetc mais j aimerai bien stocker la valeur du pixel dans un tableau pour faire le traitement avant de l ecrire dans le fichier... et vu que la valeur renvoye par fgetc ne correspond pas a la valeur du pixel je ne sais pas trop comment faire pour continuer
je me complique probablement mais je suis bloque pour le moment lol merci :)
A voir également:
- [C] Recuperation des donnes d un fichier pgm
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Pour cela, il faut d'abord connaitre la structure exacte du fichier pgm, c'est à dire de quelle facon il a été créé. Si tu cannais ca, tu saura alors implémenter un méthode pour lire un à un les pixels... moi je ne connais pas sa structure alors je peux pas plus t'aider, dsl
++
++
la structure que j'ai est la suivante :
P2
largeur hauteur
valeur_max_pixel
pixel1 pixel2 pixel3 ...
P2
largeur hauteur
valeur_max_pixel
pixel1 pixel2 pixel3 ...