Steganographie in verlustbehafteter Komprimierung (JAVA)

Ich habe dies für die Codierung von Daten in JPEG-Bildern in Java. Ich konvertiere den Text in seine Binärform und füge ihn in das LSB (abhängig davon, was der Benutzer ausgewählt hat) des RGB in jedem Pixel von (0,0) bis (Breite, Höhe) ein. .

outer:
    for(int i = 0; i < height; i++){
        for(int j = 0; j < width; j++){
            Color c = new Color(image.getRGB(j, i));                  

            int red = binaryToInteger(insertMessage(integerToBinary((int)(c.getRed())),numLSB));
            int green = binaryToInteger(insertMessage(integerToBinary((int)(c.getGreen())),numLSB));
            int blue = binaryToInteger(insertMessage(integerToBinary((int)(c.getBlue())),numLSB));

            Color newColor = new Color(red,green,blue);
            image.setRGB(j,i,newColor.getRGB());

        }
    }
    gui.appendStatus("Binarized message is: " + binarizedMessage);
    File output = new File(gui.getOutput()+".jpg");

    ImageIO.write(image, "png", output);

Derzeit schreibe ich es als PNG und es funktioniert gut, aber ich hoffe, dies in JPEG zu machen. Ich bekomme diese Daten erfolgreich in PNG. Aber wie erwartet scheitert jpeg.

Ich bin in der Lage, die verborgenen Bits im geschriebenen Bild zu decodieren und die Meldung zu sehen, wenn das richtige LSB ausgewählt wurde.

Ich lese gerade über JPEG-Steganografie, verstehe es aber nicht ganz genau, wie ich es starten soll. Ich habe Algorithmen gesehen, hat mir auch nicht geholfen.

Ich habe einen Code gesehen, für den keine Hauptklassen gefunden wurden.

Muss ich es in meiner Bewerbung aufrufen? Ändern Sie es? Wie würde ich dekodieren?

Hier ist einlink to a code Ich habe gesehen