char * saisie_nomF() { int px=10, l = 0, fini = 0;; char ch, buff[2]={0, 0}; static char nomF[MAXL] = {0}; /* Chaîne de la saisie */ /* Nettoyage de l'écran et afficher la question */ effacer_ecran(); setcolor(WHITE); setfillstyle(SOLID_FILL, BLACK); settextstyle(DEFAULT_FONT, HORIZ_DIR, 2); outtextxy(px, 15, "Quel est le fichier texte ? "); px += textwidth("Quel est le fichier texte ? "); /* Position de départ de la saisie */ /* Tant que l'on a pas reçu la touche <ENTER> lire les lettres de la chaîne */ do { ch = getch(); switch (ch) { case BKSPACE : /* Enlever une lettre de la chaîne */ if (l) { --l; nomF[l] = '\0'; px-=16; bar(px, 15, px+20, 31); /* Effacer derniere lettre */ } break; case RETURN : fini = 1; /* Fin de la saisie */ break; default : /* Ajouter une lettre a la chaine */ if (l<MAXL) { nomF[l] = ch; l++; nomF[l] = '\0'; buff[0] = ch; outtextxy(px, 15, buff); /* Afficher la lettre */ px+=16; } } } while (!fini); return nomF; }
int main(int argc, char const *argv[]) { //Pour effacer l'ecran effacer_ecran(); ligne_separation('='); char nomImage[255] = ""; char transformation[255] = ""; // On ouvre le fichier de l'image FILE* file_image = ouverture_lecture_fichier_image(&argc,argv,nomImage,transformation); if(file_image == NULL) return 1; IMAGE tab_pixels; if(lecture_fichier(file_image, &tab_pixels, nomImage)){ printf("\tNombre de Colonnes:\t%d\n\tNombre de Lignes:\t%d\n\tValeur Maximal:\t\t%d\n",tab_pixels.nb_col,tab_pixels.nb_lig,tab_pixels.max_val); printf("[O]\tLecture complete du fichier image reussie\n"); } else{ printf("[X]\tProbleme de lecture du fichier image\n"); return 1; } file_image = NULL; // ########################################### // Travail des fonctions des transformations // ########################################### // Raccourcis pour que l'utilisateur rentre la transformation lors de l'execution en ligne de commande int transfoOk = 1; if(strcmp(transformation, "niveauGris") == 0) niveauGris(&tab_pixels); else if(strcmp(transformation, "binarisation") == 0) binarisation(&tab_pixels); else if(strcmp(transformation, "symetrieH") == 0) symetrie_horizontale(&tab_pixels); else if(strcmp(transformation, "symetrieV") == 0) symetrie_verticale(&tab_pixels); else if(strcmp(transformation, "negatif") == 0) negatif(&tab_pixels); else if(strcmp(transformation, "redimensionnement") == 0) redimensionnement(&tab_pixels, argc, argv); else if(strcmp(transformation, "ameliorationContraste") == 0) amelioration_du_contraste(&tab_pixels); else if(strcmp(transformation, "lissage") == 0) lissage(&tab_pixels); else if(strcmp(transformation, "laplacien") == 0) laplacien(&tab_pixels); else if(strcmp(transformation, "gradientSimple") == 0) gradient(&tab_pixels, transformation); else if(strcmp(transformation, "gradientSobel") == 0) gradient(&tab_pixels, transformation); else if(strcmp(transformation, "detectionContoursSobel") == 0) detectionContoursSobel(&tab_pixels); else if(strcmp(transformation, "detectionContoursLaplacien") == 0) detectionContoursLaplacien(&tab_pixels); else if(strcmp(transformation, "reductionBruit") == 0) reductionBruit(&tab_pixels); else if(strcmp(transformation, "masqueCustom") == 0) masqueCustom(&tab_pixels, argc, argv); else if(strcmp(transformation, "base") != 0){ printf("[X]\tTransformation inexistante\n"); transfoOk = 0; } // ########################################### if(transfoOk){ file_image = ouverture_ecriture_fichier_image(&(tab_pixels.type),nomImage,transformation); if(file_image == NULL) return 1; if(ecriture_fichier(file_image,&tab_pixels,nomImage,transformation)) printf("[O]\tEcriture du fichier reussie, transformation sauvegardee\n"); else printf("[X]\tEcriture du fichier rate, transformation non sauvegardee\n"); } // On libère le tableau de pixels vider_tab_pixels(&tab_pixels); ligne_separation('='); return 0; }