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;
}
Exemple #2
0
 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;  
 }