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