<< Chapter < Page Chapter >> Page >

The outer loop

The outer loop iterates on the rows of pixels in the top half of the image. Only the top half of the image is processed in this method because the top halfwill be mirrored into the bottom half later on.

The inner loop

The inner loop iterates on the columns in the left half of the image, copying pixel colors from the left half into the pixels in the right half.

Destruction of pixel colors

The colors in the pixels in the upper-right quadrant are overwritten by this method.

In effect, this method and the one following it destroys all of the pixel colors originally in the right half of the picture of the rotated image and allof the pixel colors originally in the bottom half of the picture.

The final picture shown in Listing 4 contains only pixel from the upper-left quadrant of the picture with the rotated image.

Return a modified Picture object

Finally, the code in Listing 4 returns the modified Picture object to the run method in Listing 3 .

At this point, the picture with the rotated image is replaced by the version of the picture returned by the mirrorUpperQuads method.

Picture output from the mirrorUpperQuads method

If you were to display the picture at that point, you would see the imageshown in Figure 6 .

Figure 6 - Picture output from the mirrorUpperQuads method.

Picture output from the mirrorUpperQuads method

The upper-left quadrant has been mirrored

As you can see from Figure 6 , at this point in the process, the upper-left quadrant has been mirrored into the upper-rightquadrant, but the bottom half of the picture is undisturbed. It's time to do something about that.

Call the mirrorHoriz method

The next statement in the run method in Listing 3 is a call to the mirrorHoriz method passing the picture shown in Figure 6 as a parameter.

The method named mirrorHoriz

The method named mirrorHoriz is shown in Listing 5 . This method mirrors the top half of a picture into the bottom half of the same picture. It will be used to mirror thetop half of the picture in Figure 6 into the bottom half.

Listing 5 - The method named mirrorHoriz.
private Picture mirrorHoriz(Picture pix){ Pixel topPixel = null;Pixel bottomPixel = null; int midpoint = pix.getHeight()/2;int height = pix.getHeight(); for(int col = 0;col<pix.getWidth();col++){ for(int row = 0;row<midpoint;row++){ topPixel = pix.getPixel(col,row);bottomPixel = pix.getPixel(col,height-1-row);bottomPixel.setColor(topPixel.getColor()); }//end inner loop}//end outer loop return pix;}//end mirrorHoriz method }//end class Prob02Runner

Very similar to the mirrorUpperQuads method

This method is very similar to the previous method named mirrorUpperQuads .

Four working variables and a nested for loop

As before, Listing 5 declares and initializes four working variables. These variables are used in a nested for loop to copy pixel colors from the top half of the picture into the pixels in the bottom half.

The outer and inner loops

In this case, the outer loop iterates on all of the columns going from left to right.

The inner loop iterates on rows, from the top row to the vertical midpoint, copying the colors from the pixels from the top half into the pixels in thebottom half.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask