Пример #1
0
        /// <summary>
        /// Bouton qui permet de décoder une image et voir si une image est cachée dans une autre
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_DécoderImageDansUneAutre(object sender, RoutedEventArgs e)
        {
            string nomfichierprincipale = this.CheminOrigine;

            try
            {
                Projet_Vincent_Poupet.MyImage imageprincipale = new Projet_Vincent_Poupet.MyImage(nomfichierprincipale);
                imageprincipale.DécoderImageDansUneAutre();
                imageprincipale.EnregistrerImage(this.CheminEnregistrement);
            }
            catch (Exception)
            {
            }
        }
Пример #2
0
        public void DecoderImageDansUneAutre()
        {
            Projet_Vincent_Poupet.MyImage imagetestprincipale = new Projet_Vincent_Poupet.MyImage("lac_en_montagne.bmp");
            Projet_Vincent_Poupet.MyImage imagetestacacher    = new Projet_Vincent_Poupet.MyImage("coco.bmp");

            Projet_Vincent_Poupet.MyImage imageresultatprincipale = new Projet_Vincent_Poupet.MyImage("lac_en_montagne.bmp");
            Projet_Vincent_Poupet.MyImage imageresultatacacher    = new Projet_Vincent_Poupet.MyImage("coco.bmp");

            int[] tabrougeresultatacacher = new int[imageresultatprincipale.Hauteur * imageresultatprincipale.Largeur];
            int[] tabbleuresultatacacher  = new int[imageresultatprincipale.Hauteur * imageresultatprincipale.Largeur];
            int[] tabvertresultatacacher  = new int[imageresultatprincipale.Hauteur * imageresultatprincipale.Largeur];

            int k = 0;

            for (int i = 0; i < imageresultatprincipale.Hauteur; i++)
            {
                for (int j = 0; j < imageresultatprincipale.Largeur; j++)
                {
                    tabrougeresultatacacher[k] = imageresultatprincipale.MatriceDePixels[i, j].rouge & 15;
                    tabrougeresultatacacher[k] = tabrougeresultatacacher[k] << 4;
                    tabbleuresultatacacher[k]  = imageresultatprincipale.MatriceDePixels[i, j].bleu & 15;
                    tabbleuresultatacacher[k]  = tabbleuresultatacacher[k] << 4;
                    tabvertresultatacacher[k]  = imageresultatprincipale.MatriceDePixels[i, j].vert & 15;
                    tabvertresultatacacher[k]  = tabvertresultatacacher[k] << 4;

                    tabrougeresultatacacher[k] = tabrougeresultatacacher[k] & 255;
                    tabbleuresultatacacher[k]  = tabbleuresultatacacher[k] & 255;
                    tabvertresultatacacher[k]  = tabvertresultatacacher[k] & 255;

                    k++;
                }
            }

            imagetestprincipale.DécoderImageDansUneAutre();

            k = 0;

            for (int i = 0; i < imageresultatprincipale.Hauteur; i++)
            {
                for (int j = 0; j < imageresultatprincipale.Largeur; j++)
                {
                    Assert.AreEqual(imagetestprincipale.MatriceDePixels[i, j].rouge, tabrougeresultatacacher[k]);
                    Assert.AreEqual(imagetestprincipale.MatriceDePixels[i, j].bleu, tabbleuresultatacacher[k]);
                    Assert.AreEqual(imagetestprincipale.MatriceDePixels[i, j].vert, tabvertresultatacacher[k]);
                    k++;
                }
            }
        }