This page is optimized for mobile devices, if you would prefer the desktop version just click here

3.24 Java3024: mirroring images  (Page 2/4)

Instantiate a new object and call its run method

The code in the main method instantiates a new object of the class named Prob02Runner and calls the run method on that object.

When the run method returns, the main method terminates causing the program to terminate.

Beginning of the class named Prob02Runner

The beginning of the class named Prob02Runner , including the constructor, is shown in Listing 2 .

Listing 2 - Beginning of the class named Prob02Runner.
class Prob02Runner{ public Prob02Runner(){ System.out.println("Display your name here.");}//end constructor

The constructor displays the student's name, producing the first line of output text shown in Figure 5 .

The run method

The run method that is called in Listing 1 is shown in its entirety in Listing 3 .

Listing 3 - The run method.
public void run(){ Picture pix = new Picture("Prob02a.jpg");//Add your name and display the output picture. pix.addMessage("Display your name here.",10,20);//Display the input picture. pix.explore();pix = rotatePicture(pix,35); pix.explore();pix = mirrorUpperQuads(pix); pix = mirrorHoriz(pix);pix.explore(); System.out.println(pix);}//end run

Very familiar code

Except for the calls to the methods named mirrorUpperQuads and mirrorHoriz in Listing 3 , you should already be familiar with all of the code in Listing 3 .

The rotatePicture method

For example, the call to the method named rotatePicture is essentially the same as code that I explained in an earlier module. Therefore, Iwon't explain that method again in this module. You will find the code for the method named rotatePicture in Listing 6 near the end of the module.

Operate on the picture with the rotated image

The original picture is replaced by a picture containing the rotated image shown in Figure 3 . From this point forward, all operations are performed on the Picture object containing the rotated image.

The method named mirrorUpperQuads

The method named mirrorUpperQuads that is called in the run method in Listing 3 is shown in Listing 4 .

Behavior of the method named mirrorUpperQuads

This method mirrors the upper-left quadrant of a picture into the upper-right quadrant as shown in Figure 6 .

Listing 4 - The method named mirrorUpperQuads.
private Picture mirrorUpperQuads(Picture pix){ Pixel leftPixel = null;Pixel rightPixel = null; int midpoint = pix.getWidth()/2;int width = pix.getWidth(); for(int row = 0;row<pix.getHeight()/2;row++){ for(int col = 0;col<midpoint;col++){ leftPixel = pix.getPixel(col,row);rightPixel = pix.getPixel(width-1-col,row);rightPixel.setColor(leftPixel.getColor()); }//end inner loop}//end outer loop return pix;}//end mirrorUpperQuads

Declare four working variables

Listing 4 begins by declaring and initializing four working variables. The purpose of these variables should be obvious on the basisof their names and their initialization expressions.

Copy the pixel colors

Then Listing 4 uses a double nested for loop to copy the colors from the pixels in the upper-left quadrant into thepixels in the upper-right quadrant. This is done in such a way as to form a mirror image about the center point as shown in Figure 6 .

<< Chapter < Page Page > Chapter >>

Read also:

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.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.