/// <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) { } }
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++; } } }