예제 #1
0
        // 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();
        }
예제 #2
0
        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");
        }