View difference between Paste ID: JE7tiEuG and xjKdVDEN
SHOW: | | - or go back to the newest paste.
1-
 20 public class Stegano {
1+
27     public void EcrireTexte(String texte, BufferedImage image)
2
 28     {
3-
 24     public static void main(String args[]) {
3+
 29         int ecraser = JOptionPane.YES_OPTION;  
4-
 25     }
4+
 30         if(TagPresent(image)) ecraser = JOptionPane.showOptionDialog(null, "Photo déjà taguée ! Ecraser ?",
5-
 
5+
 31                 "Le Grand Choix", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
6-
 27     public void EcrireTexte(String texte, BufferedImage image)
6+
 32             if(ecraser ==  JOptionPane.YES_OPTION) {
7
 33                 texte = "stg" + texte + '#';
8-
 77     public String LireTexte(BufferedImage image)
8+
 34                 int l_mot = 8*(texte.length());
9
 35                 int motBinaire[] = new int[(l_mot/3+3)*3]; //Il faut calculer la taille du mot de sorte à ce que la boucle ne déborde pas
10-
113     public void EffacerTags(BufferedImage image)
10+
 36                 TexteEnBinaire(texte, motBinaire, l_mot); //Conversion du texte en binaire
11
12-
144     private void TexteEnBinaire(String texte, int tableau[], int taille) 
12+
 43                 for(int n=0;n<=(l_mot/3)+1;n++) //Pour un nombre de pixels égal au nombre de bits divisé par 3
13
 44                 {
14-
160     private String BinaireEnTexte(int binaire[])
14+
 45                     couleurs = tramePixels.getDataElements(n%image.getWidth(), n/image.getHeight(), null); //On récupère la palette d'un pixel
15
 46                     composante[0]=modelCouleur.getRed(couleurs); //On récupère le rouge
16-
178     public boolean TagPresent(BufferedImage image) 
16+
 47                     composante[1]=modelCouleur.getGreen(couleurs); //Et le vert
17-
   
17+
 48                     composante[2]=modelCouleur.getBlue(couleurs); //Et aussi le bleu
18-
195     public boolean CorrespondanceTags(String cles, String tags)
18+
 49 
19
 50                     for(int i=0;i<=2;i++)
20-
249 }
20+
 51                     {
21
 52                         switch(motBinaire[j]) {
22
 53                             case 1:
23
 54                                 if(composante[i]%2 == 0) {
24
 55                                     if(composante[i] != 255) composante[i]++;         
25
 56                                     else composante[i]--;             
26
 57                                 } 
27
 58                                 break;
28
 59                             case 0:
29
 60                                 if(composante[i]%2 == 1) {
30
 61                                     if(composante[i] != 255) composante[i]++;
31
 62                                     else composante[i]--;
32
 63                                 }
33
 64                                 break;
34
 65                         }
35
 66                         j++;
36
 67                     }
37
 68                     nouvelleCouleur = new Color(composante[0], composante[1], composante[2]); //On recréé une couleur à partir de l'ancienne
38
 69                     rvb = nouvelleCouleur.getRGB(); 
39
 70                     couleurs = modelCouleur.getDataElements(rvb, null);
40
 71                     tramePixels.setDataElements(n%image.getWidth(), n/image.getHeight(), couleurs); // On l'écrit dans le pixel
41
 72                 }
42
 73                 image.setData(tramePixels);     
43
 74             }
44
 75     }