rendered paste body/*TP2 : 2004 : Matrice - Allocation dynamique - Fichier printf("1) Taille_Image_Lecture_affiche \n"); // Determiner NL et NC; reserver memoire pr imageprintf("2) binarisation affiche\n"); // Binarisation de l'image : 0 OU 1printf("3) Save_file_image\n"); // Savegarder image binarisee dans fichierprintf("4) Affichage\n");printf("5) Affichage_TRANSF\n"); // Remplacer '0' par espace et '1' par oprintf("6) DESALLOC_IMAGE\n");printf("7) Quitter\n");*/#include <stdio.h>#include <stdlib.h>#include <conio.h>#define Lin_Max 30// recherche le nombre de lignes et de colonnes du fichier void Taille_Image( int *NL, int *NC, char NOM_FICHIER[]){ FILE *PfL; char Buffer[500]; int i; // Lire et chercher NL et NC printf("Entrez le nom du fichier a Lire : "); scanf("%s",NOM_FICHIER); PfL = fopen(NOM_FICHIER, "r"); if(PfL==NULL){ printf("\nDESOLE! pas de fichier : %s\n\n\n",NOM_FICHIER); getch(); exit(0); } fscanf(PfL,"%d", NC); i=0; while (!feof(PfL)) { fgets(Buffer, *NC*4, PfL); // 4 car des valeurs entre 0 et 255 plus espace, donc 4 caracteres i++; } *NL= i-1;// printf("\n NL=%d et NC=%d\n", *NL, *NC); fclose(PfL);}void affiche(int NL, int NC, int *image[]){ int i, j; for(i=0; i<NL; i++){ printf("\n"); for(j=0; j<NC; j++){ printf("%d ",image[i][j]); } }}// Tranformation de l'affichagevoid affiche_TRANS(int NL, int NC, int *image[]){ int i, j; printf("\n\n"); for(i=0; i<NL; i++){ printf("\n\n"); for(j=0; j<NC; j++){ if( image[i][j] == 1) printf("%c",'°'); else printf("%c",' '); } } printf("\n\n");}// Allocation de la mémoirevoid ALLOC_IMAGE(){}//----------------------//desallocate image//----------------------void DESALLOC_IMAGE(){ }// Lecture et chargement du fichier quand NL et NC connusvoid Lecture(int NL, int NC, int *image[], char NOM_FICHIER[]){ }// Binarisation de l'imagevoid binarisation ( int nl, int nc){ int i,j; int seuil; printf ("seuil = \n"); scanf("%d",&seuil); for (i=0; i<nl; i++) { for (j=0; j<nc; j++) { // ... } }}// void Save_file_image (){ }int menu(){ int choix=0; printf("1) Taille_Image_Lecture_affiche \n"); printf("2) binarisation affiche\n"); printf("3) Save_file_image\n"); printf("4) Affichage\n"); printf("5) Affichage_TRANSF\n"); printf("6) DESALLOC_IMAGE\n"); printf("7) Quitter\n"); scanf("%d", &choix); return choix;}//+++++++++++++++++++++++++++++++++++++++++++++void main(){ int L, C, rep; char NOM_FICHIER[30]; int *image[Lin_Max]; do{ rep=menu(); switch(rep) { case 1 : Taille_Image( &L, &C, NOM_FICHIER); printf("\n L=%d et C=%d\n", L, C); Lecture(L, C, image, NOM_FICHIER); affiche(L, C, image); break; case 2 : printf("\n OUT \n"); binarisation ( L, C); affiche(L, C, image); break; case 3 : Save_file_image( ); break; case 4 : affiche(L, C, image); break; case 5 : affiche_TRANS(L, C, image); break; case 6 : DESALLOC_IMAGE( ); break; case 7 : printf(" Fin du programme \n"); break; default : printf(" Il faut choisir entre (1), (2) ou (3) ...\n"); } printf("\n"); }while(rep!=7);}