Files
DEV/DEV.1.1/divers/cm3.1.c
Emmanuel Srivastava f932e6813c update
2025-01-20 18:26:48 +01:00

47 lines
1.3 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* 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;
}