<< Chapter < Page | Chapter >> Page > |
The getPictureWithHeight method
The getPictureWithHeight method is defined in Ericson's SimplePicture class and inherited into Ericson's Picture class.
The method requires a single integer input parameter, which specifies the height in pixels of a scaled output version of the picture object on which themethod is called.
According to the documentation, the method can be used to create a new picture with the specified height. The aspect ratio of the width and height willstay the same.
Original height is 256 pixels
Referring back to the parameters that were passed to the crop method in Listing 3 , you can see the height of all three cropped images is 256 pixels.
Scale by 1/2 and 1/3
Referring to the two calls to the getPictureWithHeight method in Listing 4 , you can see that one of the cropped images was replaced with an image having aheight of 256/ 2 or 128 pixels. The other cropped image was replaced with an image having a height of 256/3 or 85 pixels. You can see the effect ofthis scaling in Figure 5 .
The height of one of the images was not changed, which you can also see in Figure 5 .
Put the run method on hold
I will put the explanation of the run method on temporary hold at this point and explain the method named greenScreenDraw , which is shown in Listing 5 .
Behavior of the greenScreenDraw method
The greenScreenDraw method requires four incoming parameters:
Pure green pixels are required for transparency
The method draws the source image onto the destination image at the specification location. However, pixels having a pure green color are notdrawn on the destination image. The effect is to make it appear that those portions of the source image with pure green pixels become totally transparent allowing the pixels belonging to the destination image to show through.
jpg image files are not satisfactory for this program
Picture objects created from jpg image files typically won't have a pure green background even if they had a pure green background before beingcompressed into the jpg format file. However, the bmp file format does not corrupt the pixel colors. Therefore, bmp images work well for this type ofprocessing.
The greenScreenDraw method
The greenScreenDraw method is shown in its entirety in Listing 5 .
Listing 5 . The greenScreenDraw method. |
---|
private void greenScreenDraw(
Picture source,Picture dest,
//Place the upper-left corner// of the source image at the
// following location in the// destination image.
int destX,int destY){
int width = source.getWidth();int height = source.getHeight();
Pixel pixel = null;Color color = null;
for(int row = 0;row<height;row++){
for(int col = 0;col<width;col++){
color = source.getPixel(col,row).getColor();if(!(color.equals(Color.GREEN))){
pixel = dest.getPixel(destX + col,destY + row);pixel.setColor(color);
}//end if}//end inner loop
}//end outer loop}//end greenScreenDraw |
Notification Switch
Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?