Lire et écrire une image en format PGM

Signaler
Messages postés
2
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
9 mai 2012
-
Messages postés
7
Date d'inscription
samedi 4 décembre 2010
Statut
Membre
Dernière intervention
30 juin 2016
-
#include <stdio.h>
#include <math.h>
#include <malloc.h>
int main()
{
int n,m;
int i,j;
unsigned char ** image;
char ligne[100];
FILE* voiture;
voiture=fopen("lena.pgm","r" );
if(voiture==NULL) {printf("ERROR" ); return(0);}
for(i=0;i<2;i++)
{
fgets(ligne,100,voiture);
printf("\n%s\n",ligne);
}
fscanf(voiture,"%d%d%d\n",&m,&n,&i);
printf("nb ligne:%d\nnb col:%d\n%d\n",n,m,i);
image=(unsigned char**) malloc(n*sizeof(unsigned char*));
for(i=0;i<n;i++)
image[i]=(unsigned char*) malloc(m*sizeof(unsigned char));
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(voiture,"%c",image[i]+j);
/*for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf("%d",image[i][j]);
*/
FILE* voiture2;
voiture2=fopen("voiture2.pgm","wt" );
if(voiture2==NULL) {printf("ERROR2" ); return(0);}
fprintf(voiture2,"P5\n#Copy by dark86\n" );
fprintf(voiture2,"%d %d\n255\n",m,n);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fprintf(lena2,"%c",image[i][j]);
for(i=0;i<n;i++)
free(image[i]);
free(image);
fclose(voiture);
printf("khaleeeeeeeeeed");
fclose(voiture2);
return(0);
}

6 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
sizeof(unsigned char*)

???


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
109
Bonjour

1) Quelle est la question précise ?
2) Merci d'utiliser les balises de code. Si tu ne fais pas cet effort nous ne ferons pas non plus l'effort de t'aider.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
2
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
9 mai 2012

le probleme est que l'image crée (voiture2.pgm) est n'est pas crée correctement ,une grande partie est en noir!!!
voila la fichier du test (lena.pgm ) http://www.ece.umd.edu/class/enee631.F2001/am/am3/Lena.pgm
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
109
Le code est apparemment pompé d'un vieux code de 2005: http://forum.hardware.fr/hfr/Programmation/C/image-copie-image-sujet_66441_1.htm
Dans la conversation, il propose des petites améliorations que l'auteur de ce post n'a même pas pris le temps d'appliquer au code...

Comprends-tu vraiment le code que tu as copié ? (copier du code c'est bien, tant qu'on le comprend, et qu'on ne le recopie pas bêtement).

Par exemple, à quoi sert le modificateur "t" dans la fonction fopen ?
Pourquoi ajouter un commentaire en haut de chaque fichier pgm ? (Le commentaire est: "#Copy by dark86").
Pourquoi écrire "image=(unsigned char**) malloc(n*sizeof(unsigned char*));" au lieu de "image=malloc(n*sizeof(unsigned char*));" ? (C'est du C, donc pas besoin de caster le retour du malloc).

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
792
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
12 juillet 2019
8
salut,
tu peux regarder ce lien:
http://www.codeproject.com/Articles/1300/CxImage
il contient le code pour lire et écrire le format pgm


louis
Messages postés
7
Date d'inscription
samedi 4 décembre 2010
Statut
Membre
Dernière intervention
30 juin 2016
4
Bonjour,

Je viens de mettre en anciens code pour le traitement d'image au format PGM
Lien du post.
En espérant que cela puisse t'aider.

Jios