<< Chapter < Page | Chapter >> Page > |
Revised: Sat Apr 02 20:06:54 CDT 2016
This page is included in the following Books:
This module contains review questions and answers keyed to the module titled Java3006: Implementing a space-wise linear color-modification algorithm .
The questions and the answers are connected by hyperlinks to make it easy for you to navigate from the question to the answer and back again.
True or False? The program shown in Listing 1 will transform the image shown in Figure 1 into the image shown in Figure 2 (or to an image that looks very similar to the image shown in Figure 2 ).
Listing 1 . Source code for Java3006r. |
---|
/*File Java3006r Copyright 2013 R.G.Baldwin
*********************************************************/public class Java3006r{
public static void main(String[]args){
Java3006rRunner obj = new Java3006rRunner();obj.run();
System.out.println(obj.getPicture());}//end main
}//end class Java3006r//======================================================//
class Java3006rRunner{//Instantiate the Picture object.
private Picture pic = new Picture("Java3006r.jpg");
public Java3006rRunner(){//constructorSystem.out.println("Dick Baldwin");
}//end constructor//----------------------------------------------------//
//Accessor methodpublic Picture getPicture(){return pic;}
//----------------------------------------------------////This method is where the action is.
public void run(){pic.addMessage("Dick Baldwin",10,20);
//Display a PictureExplorer object.pic.explore();
//Get an array of Pixel objects.Pixel[] pixels = pic.getPixels();//Declare working variables
Pixel pixel = null;int green = 0;
int blue = 0;int width = pic.getWidth();
double greenScale = 0;double blueScale = 0;
//Scale the blue and green color components according// to the algorithm given above.
//Do not scale the red component.for(int cnt = 0;cnt<pixels.length;cnt++){
//Get blue and green values for current pixel.pixel = pixels[cnt];green = pixel.getGreen();
blue = pixel.getBlue();//Compute the column number and use it to compute
// the scale factor.int col = cnt%width;
greenScale = (double)(width - col)/width;blueScale = (double)(col)/width;
//Apply the scale factor.pixel.setGreen((int)(green * greenScale));
pixel.setBlue((int)(blue * blueScale));}//end for loop
//Display a PictureExplorer object.pic.explore();
}//end run method}//end class Java3006rRunner |
Figure 1 - The image from Java3006r.jpg.
Figure 2 - Possible output image.
True or False? The output shown in Figure 2 was produced by calling the show method of Ericson's Picture class.
True or False? A call to Ericson's getPixels method returns a reference to a one-dimensional array object. The elements in the array are references to Pixel objects, where each Pixel object represents a single pixel in an image.
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?