#include #include void modifierImage(char *nomFichier) { int pixel, largeur, hauteur, intensiteMax; char commentaire[256],enTete[3]; FILE *fichier = fopen(nomFichier, "r+"); if (fichier == NULL) { fprintf(stderr,"Impossible d'ouvrir le fichier !"); return; } /* Lire l'en-tête */ fscanf(fichier, "%2s", enTete); if (enTete[0] != 'P' || enTete[1] != '2') { printf("Le fichier n'est pas au format PPM ASCII.\n"); fclose(fichier); return; } /* Ignorer les commentaires s'il y en a*/ while (fgetc(fichier) == '#') { fgets(commentaire, sizeof(commentaire), fichier); } /* Lire les dimensions et l'intensité maximale*/ fscanf(fichier, "%d %d %d", &largeur, &hauteur, &intensiteMax); /* Modifier les pixels du message en blanc*/ fseek(fichier, ftell(fichier), SEEK_SET); /* Revenir au début des données d'image*/ while ((pixel = fgetc(fichier)) != EOF) { /* Modifier uniquement les pixels correspondant au message (intensité 3)*/ if (pixel == 3) { fseek(fichier, -1, SEEK_CUR); fprintf(fichier, "5 "); } } fclose(fichier); } int main(void) { char nomFichier[] = "image.pgm"; modifierImage(nomFichier); printf("Modification terminée avec succès.\n"); return EXIT_SUCCESS; }