示例#1
0
        /// <summary>
        /// Bouton qui permet de cacher une image dans une autre
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_CoderImageDansUneAutre(object sender, RoutedEventArgs e)
        {
            string nomfichierprincipale = ParcourirFichierEtRecupererNomImage();
            string nomfichieracacher    = this.CheminOrigine;

            try
            {
                Projet_Vincent_Poupet.MyImage imageprincipale = new Projet_Vincent_Poupet.MyImage(nomfichierprincipale);
                Projet_Vincent_Poupet.MyImage imageacacher    = new Projet_Vincent_Poupet.MyImage(nomfichieracacher);

                imageprincipale.CoderImageDansUneAutre(imageacacher);
                imageprincipale.EnregistrerImage(this.CheminEnregistrement);
            }
            catch (Exception)
            {
            }
        }
示例#2
0
        public void CoderImageDansUneAutre()
        {
            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[] tabrougeimageprincipale = new int[imageresultatprincipale.Hauteur * imageresultatprincipale.Largeur];
            int[] tabbleuimageprincipale  = new int[imageresultatprincipale.Hauteur * imageresultatprincipale.Largeur];
            int[] tabvertimageprincipale  = new int[imageresultatprincipale.Hauteur * imageresultatprincipale.Largeur];

            int[] tabrougeimagecachée = new int[imageresultatacacher.Hauteur * imageresultatacacher.Largeur];
            int[] tabbleuimagecachée  = new int[imageresultatacacher.Hauteur * imageresultatacacher.Largeur];
            int[] tabvertimagecachée  = new int[imageresultatacacher.Hauteur * imageresultatacacher.Largeur];

            int[] tabrougeresultat = new int[imageresultatacacher.Hauteur * imageresultatacacher.Largeur];
            int[] tabbleuresultat  = new int[imageresultatacacher.Hauteur * imageresultatacacher.Largeur];
            int[] tabvertresultat  = new int[imageresultatacacher.Hauteur * imageresultatacacher.Largeur];

            int k = 0;

            for (int i = 0; i < imageresultatacacher.Hauteur; i++)
            {
                for (int j = 0; j < imageresultatacacher.Largeur; j++)
                {
                    tabrougeimageprincipale[k] = imageresultatprincipale.MatriceDePixels[i, j].rouge & 240;
                    tabbleuimageprincipale[k]  = imageresultatprincipale.MatriceDePixels[i, j].bleu & 240;
                    tabvertimageprincipale[k]  = imageresultatprincipale.MatriceDePixels[i, j].vert & 240;

                    tabrougeimagecachée[k] = imageresultatacacher.MatriceDePixels[i, j].rouge & 240;
                    tabrougeimagecachée[k] = tabrougeimagecachée[k] >> 4;
                    tabbleuimagecachée[k]  = imageresultatacacher.MatriceDePixels[i, j].bleu & 240;
                    tabbleuimagecachée[k]  = tabbleuimagecachée[k] >> 4;
                    tabvertimagecachée[k]  = imageresultatacacher.MatriceDePixels[i, j].vert & 240;
                    tabvertimagecachée[k]  = tabvertimagecachée[k] >> 4;


                    tabrougeresultat[k] = tabrougeimageprincipale[k] | tabrougeimagecachée[k];
                    tabbleuresultat[k]  = tabbleuimageprincipale[k] | tabbleuimagecachée[k];
                    tabvertresultat[k]  = tabvertimageprincipale[k] | tabvertimagecachée[k];

                    k++;
                }
            }

            imagetestprincipale.CoderImageDansUneAutre(imagetestacacher);

            k = 0;

            for (int i = 0; i < imageresultatacacher.Hauteur; i++)
            {
                for (int j = 0; j < imageresultatacacher.Largeur; j++)
                {
                    Assert.AreEqual(imagetestprincipale.MatriceDePixels[i, j].rouge, tabrougeresultat[k]);
                    Assert.AreEqual(imagetestprincipale.MatriceDePixels[i, j].bleu, tabbleuresultat[k]);
                    Assert.AreEqual(imagetestprincipale.MatriceDePixels[i, j].vert, tabvertresultat[k]);
                    k++;
                }
            }
        }