Wie kann ich ein Bild mit glReadPixels () Bufferedimage horizontal spiegeln und mit ImageIO ausgeben?

Wie drehe ich ein Screenshot-Bild um? Ich kann mein Problem nirgendwo anders finden.
Beispielcode:

/*
*@param fileLoc //Location of fileoutput destination
*@param format  //"png"
*@param WIDTH   //Display.width();
*@param HEIGHT  //Display.height();
*/
private void getScreenImage(){
             int[] pixels = new int[WIDTH * HEIGHT];
             int bindex;
             // allocate space for RBG pixels
             ByteBuffer fb = ByteBuffer.allocateDirect(WIDTH * HEIGHT * 3);//.order(ByteOrder.nativeOrder());
             // grab a copy of the current frame contents as RGB

             glReadPixels(0, 0, WIDTH, HEIGHT, GL_RGB, GL_UNSIGNED_BYTE, fb);

             BufferedImage image = new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_INT_RGB);
             // convert RGB data in ByteBuffer to integer array
             for (int i=0; i < pixels.length; i++) {
                 bindex = i * 3;
                 pixels[i] =
                     ((fb.get(bindex) << 16))  +
                     ((fb.get(bindex+1) << 8))  +
                     ((fb.get(bindex+2) << 0));
             }
             try {
                //Create a BufferedImage with the RGB pixels then save as PNG
                 image.setRGB(0, 0, WIDTH, HEIGHT, pixels, 0 , WIDTH);

                 ImageIO.write(image, format , fileLoc);
             }
             catch (Exception e) {
                 System.out.println("ScreenShot() exception: " +e);
             }
         }

Grundsätzlich funktioniert der Code zum Erfassen des Bildschirms und Speichern im "png" -Format.
Aber bei der Ausgabe wird das Bild horizontal gespiegelt, weilglReadPixels();,
Lesen Sie von links unten nach rechts oben.

Wie kann ich das Bild horizontal spiegeln, bevor ich es wiederhole?ImageIO.write();?

Danke im Voraus, Rose.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage