update
This commit is contained in:
46
DEV.1.1/CM3TEST/cm3.1.c
Normal file
46
DEV.1.1/CM3TEST/cm3.1.c
Normal file
@@ -0,0 +1,46 @@
|
||||
#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;
|
||||
}
|
Reference in New Issue
Block a user