#include #include #include /* Fonction pour traiter l'image */ void modifier_image_pgm(const char *nom_fichier) { FILE *fichier; char ligne[256]; int largeur, hauteur, niveaux, x, y; fichier = fopen(nom_fichier, "r+"); if (fichier == NULL) { fprintf(stderr, "Erreur: Impossible d'ouvrir le fichier\n"); exit(EXIT_FAILURE); } /* Lire l'en-tĂȘte du fichier PGM */ fgets(ligne, sizeof(ligne), fichier); /* Lire le format (P2) */ fgets(ligne, sizeof(ligne), fichier); /* Lire le commentaire */ fscanf(fichier, "%d %d", &largeur, &hauteur); fscanf(fichier, "%d", &niveaux); /* Modifier les pixels d'intensitĂ© 3 au centre de l'image */ for (y = 0; y < hauteur; y++) { for (x = 0; x < largeur; x++) { int pixel; fscanf(fichier, "%d", &pixel); if (pixel == 3 && x > 0 && x < largeur - 1 && y > 0 && y < hauteur - 1) { fseek(fichier, -2, SEEK_CUR); fprintf(fichier, "5 "); } } } fclose(fichier); } int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "Usage: %s fichier.pgm\n", argv[0]); return EXIT_FAILURE; } modifier_image_pgm(argv[1]); return EXIT_SUCCESS; }