// TO DO ! // Maintenant que l'on a la matrice de pixels, lorsque l'on fera des changements dessus, //Il faut creer une fonction qui "retraduit" les pixels dans le m_fileByte ! static void Main(string[] args) { // CImage fichier3 = new CImage("Test002.bmp"); CImage fichier1 = new CImage("Test003.bmp"); //CImage fichier2 = new CImage("lena.bmp"); // Le fichier2 ne s'affiche pas sur la console avec AffichageImageEnTraitementStr //Console.WriteLine(fichier2.AffichageImageEnPixels()); fichier1.toString(); // Console.WriteLine(fichier1.AffichageImage20sur20EnTraitementStr()); fichier1.AffichageMatriceRGB(); byte[] tab1 = { 230, 4, 0, 0 }; int abc = tab1[1]; /*int i = BitConverter.ToInt32(bytes, 0); * Console.WriteLine("int: {0}", i); * // Output: int: 25*/ int[] tab = { 0, 1, 2, 3 }; inversion(tab); for (int z = 0; z < tab.Length; z++) { Console.Write(" " + tab[z]); } Console.WriteLine(); int a = 66309; a = a % 256; Console.WriteLine(a); Console.ReadKey(); }
public static void MenuUtilisateur() { int choixMenuUtilisateurInt = Int32.MinValue; do { #region Boucle do tant que l'on est pas sorti bool entreeCorrecteBool = false; while (!entreeCorrecteBool) // Controle de saisie utilisateur { #region Controle sur le choix de l'utilisateur + Menu try { Console.WriteLine(" ----------------------- MENU -----------------------\n"); Console.WriteLine("1. Fichiers images bmp déjà disponibles "); Console.WriteLine("2. Création d'image à partir d'une matrice saisie dans le main"); Console.WriteLine("3. Projet Innovation"); Console.WriteLine("0. Quitter"); Console.WriteLine(); Console.WriteLine("-----------------------------------------------------"); Console.Write("Veuillez saisir un menu : "); string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 0 && reponseInt != 1 && reponseInt != 2 && reponseInt != 3) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 0: break; // Sortie case 1: { #region Si choix = 1 alors on va pouvoir modifier l'image déjà disponible, (j'aimerai l'ouvrir directement) Console.WriteLine("Voici les images déjà disponibles en format png : \n1: TestOO1 \n2: Test010 \n3: Test003 \n4: Tolisso \n5: Lena"); //Console.Clear(); Console.Write("Choisir une image afin de pouvoir la créer en format bmp : "); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { #region Modification de l'image par l'utilisateur de Test001 CImage fichier1 = new CImage("Test001.bmp"); fichier1.From_Image_To_File(fichier1.MatriceImageDuFilePxl()); Console.WriteLine("Voulez-vous modifier l'image ?"); Console.WriteLine("1: Rotation sens anti trigonométrique à 90 degrès"); Console.WriteLine("2: Rotation sens anti trigonométrique à 180 degrès"); Console.WriteLine("3: Rotation sens anti trigonométrique à 270 degrès"); Console.WriteLine("4: Renforcement des bords"); Console.WriteLine("5: Ne faire aucune modification"); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { Console.Write("Entrez votre choix : "); string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensAntiTrigoPxl()); } break; case 2: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation180Pxl()); } break; case 3: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensTrigoPxl()); } break; case 4: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.RenforcementDesBords_Pxl()); } break; case 5: break; } } break; #endregion case 2: { #region Modification de l'image par l'utilisateur de Test010 CImage fichier1 = new CImage("Test010.bmp"); fichier1.From_Image_To_File(fichier1.MatriceImageDuFilePxl()); Console.WriteLine("Voulez-vous modifier l'image ?"); Console.WriteLine("1: Rotation sens anti trigonométrique à 90 degrès"); Console.WriteLine("2: Rotation sens anti trigonométrique à 180 degrès"); Console.WriteLine("3: Rotation sens anti trigonométrique à 270 degrès"); Console.WriteLine("4: Renforcement des bords"); Console.WriteLine("5: Ne faire aucune modification"); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { Console.Write("Entrez votre choix : "); string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensAntiTrigoPxl()); } break; case 2: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation180Pxl()); } break; case 3: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensTrigoPxl()); } break; case 4: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.RenforcementDesBords_Pxl()); } break; case 5: break; } #endregion } break; case 3: { #region Modification de l'image par l'utilisateur de Test003 CImage fichier1 = new CImage("Test003.bmp"); fichier1.From_Image_To_File(fichier1.MatriceImageDuFilePxl()); Console.WriteLine("Voulez-vous modifier l'image ?"); Console.WriteLine("1: Rotation sens anti trigonométrique à 90 degrès"); Console.WriteLine("2: Rotation sens anti trigonométrique à 180 degrès"); Console.WriteLine("3: Rotation sens anti trigonométrique à 270 degrès"); Console.WriteLine("4: Renforcement des bords"); Console.WriteLine("5: Ne faire aucune modification"); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { Console.Write("Entrez votre choix : "); string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensAntiTrigoPxl()); } break; case 2: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation180Pxl()); } break; case 3: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensTrigoPxl()); } break; case 4: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.RenforcementDesBords_Pxl()); } break; case 5: break; } #endregion } break; case 4: { #region Modification de l'image par l'utilisateur de Tolisso CImage fichier1 = new CImage("Tolisso.bmp"); fichier1.From_Image_To_File(fichier1.MatriceImageDuFilePxl()); Console.WriteLine("Voulez-vous modifier l'image ?"); Console.WriteLine("1: Rotation sens anti trigonométrique à 90 degrès"); Console.WriteLine("2: Rotation sens anti trigonométrique à 180 degrès"); Console.WriteLine("3: Rotation sens anti trigonométrique à 270 degrès"); Console.WriteLine("4: Renforcement des bords"); Console.WriteLine("5: Ne faire aucune modification"); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { Console.Write("Entrez votre choix : "); string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensAntiTrigoPxl()); } break; case 2: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation180Pxl()); } break; case 3: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensTrigoPxl()); } break; case 4: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.RenforcementDesBords_Pxl()); } break; case 5: break; } #endregion } break; case 5: { #region Modification de l'image par l'utilisateur de Lena CImage fichier1 = new CImage("Lena.bmp"); fichier1.From_Image_To_File(fichier1.MatriceImageDuFilePxl()); Console.WriteLine("Voulez-vous modifier l'image ?"); Console.WriteLine("1: Rotation sens anti trigonométrique à 90 degrès"); Console.WriteLine("2: Rotation sens anti trigonométrique à 180 degrès"); Console.WriteLine("3: Rotation sens anti trigonométrique à 270 degrès"); Console.WriteLine("4: Renforcement des bords"); Console.WriteLine("5: Ne faire aucune modification"); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { Console.Write("Entrez votre choix : "); string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensAntiTrigoPxl()); } break; case 2: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation180Pxl()); } break; case 3: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.Rotation90SensTrigoPxl()); } break; case 4: { Console.WriteLine("La modification a été effectuée, il faut créer un emplacement."); fichier1.From_Image_To_File(fichier1.RenforcementDesBords_Pxl()); } break; case 5: break; } #endregion } break; } #endregion } break; case 2: { #region Si choix = 2 alors on crée une image à partir d'une matrice donnée, ici il n'y en a qu'une seule.. Console.WriteLine("Dans ce menu, vous pouvez créer une image à partir d'une matrice disponible dans le main"); Console.WriteLine("Matrice disponnible pour le moment est la matrice M, entrez pour continuer et créer l'image."); Console.ReadKey(); CPixels[,] matriceM = RemplissageMatriceInitial_M(); CImage matrice = new CImage(matriceM); #endregion } break; case 3: { #region Si choix = 3, Projet Innovation Console.WriteLine(); Console.WriteLine("Ici, le projet innonvation consiste à proposer un filtre supplémentaire pour les photos."); Console.WriteLine("Ce filtre permet d'estamper la photo c'est-à-dire que il y aura un effet de gravure. "); Console.WriteLine(); Console.WriteLine("Voici les images déjà disponibles en format png : \n1: TestOO1 \n2: Test010 \n3: Test003 \n4: Tolisso \n5: Lena"); Console.Write("Choisir une image afin de pouvoir lui appliquer le filtre : "); while (!entreeCorrecteBool) { #region Controle sur le choix de l'utilisateur try { string reponseStr = Console.ReadLine(); Console.WriteLine(); int reponseInt = Convert.ToInt32(reponseStr); if (reponseInt != 1 && reponseInt != 2 && reponseInt != 3 && reponseInt != 4 && reponseInt != 5) { throw new Exception("Valeur saisie Incorrecte !!!"); } else { choixMenuUtilisateurInt = reponseInt; } entreeCorrecteBool = true; } catch (Exception e) { Console.Clear(); Console.WriteLine(e.Message + "\n\n"); entreeCorrecteBool = false; } #endregion } //Sortie de la boucle de controle, on remet alors la variable à false pour les prochains controles entreeCorrecteBool = false; switch (choixMenuUtilisateurInt) { case 1: { CImage fichier1 = new CImage("Test001.bmp"); Console.WriteLine("L'estampage de la photo a été effectué."); fichier1.From_Image_To_File(fichier1.FiltreEstampage_Pxl()); } break; case 2: { CImage fichier1 = new CImage("Test010.bmp"); Console.WriteLine("L'estampage de la photo a été effectué."); fichier1.From_Image_To_File(fichier1.FiltreEstampage_Pxl()); } break; case 3: { CImage fichier1 = new CImage("Test003.bmp"); Console.WriteLine("L'estampage de la photo a été effectué."); fichier1.From_Image_To_File(fichier1.FiltreEstampage_Pxl()); } break; case 4: { CImage fichier1 = new CImage("Tolisso.bmp"); Console.WriteLine("L'estampage de la photo a été effectué."); fichier1.From_Image_To_File(fichier1.FiltreEstampage_Pxl()); } break; case 5: { CImage fichier1 = new CImage("Lena.bmp"); Console.WriteLine("L'estampage de la photo a été effectué."); fichier1.From_Image_To_File(fichier1.FiltreEstampage_Pxl()); } break; } #endregion } break; } #endregion Console.ReadKey(); Console.WriteLine("Pressez une touche afin de revenir dans le menu"); Console.ReadKey(); Console.Clear(); } while (choixMenuUtilisateurInt != 0); Console.WriteLine("SORTIE DE MENU\n Fin de compilation"); }