2016-09-26 2 views
1

Ich möchte ein Programm erstellen, das x- und y-Zähler-Variablen verwendet, um Pixel von der unteren rechten Ecke bis zur oberen linken Ecke von einem Bild zu lesen. Das Programm würde das Pixel oben rechts links oben zuweisen und würde jedem Pixel auf diese Weise zuweisen, das das Bild spiegeln würde.Wie kann ich ein Bild mit einer geschachtelten for-Schleife spiegeln?

Mein Haupt Code so weit:

Scanner reader = new Scanner(System.in); 
APImage image = new APImage("MrB.JPG"); 
image.draw(); 

int width = image.getWidth(); 
int height = image.getHeight(); 
APImage brandnew = new APImage(width, height); 

int y = 0; 
for(y < height; y--;) 
{ 
    int x = width - 1 
    for(x >= 0; x++;) 
    { 
     Pixel opixel = image.getPixel(x, y); 
    } 
} 

System.out.println("Press the return key to continue"); 
reader.nextLine(); 
brandnew.draw(); 

Jede Hilfe wird geschätzt, prost werden.

+0

Sofern Ihr Bild quadratisch ist und Sie wollen es über die kleine Diagonale kippen, wird dies nicht tun, was Sie auch richtig, wenn umgesetzt werden soll. –

Antwort

0

Dies sollte es tun:

for(int x = 0; x < width; y++){ 
    for(int y = 0; y < height; y++){ 
     flipped.setPixel(width - 1 - x, height - 1 - y, original.getPixel(x,y)); 
    } 
} 
+0

In der Zeile "flipped.setPixel (width - x, height - y, original.getPixel (x, y));" erhalte ich eine java.lang.ArrayIndexoutofBoundsException. Irgendeine Idee warum? – dsowders

+0

@dowders Ich habe meine Antwort bearbeitet, um das zu adressieren. – Titus

Verwandte Themen