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

3.20 Java3018r review

This module contains review questions and answers keyed to the module titled Java3018: Darkening, Brightening, and Tinting the Colors in a Picture.

Revised: Sun Apr 03 17:16:35 CDT 2016

This page is included in the following Books:

Table of contents

Preface

This module contains review questions and answers keyed to the module titled Java3018: Darkening, Brightening, and Tinting the Colors in a Picture .

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.

Questions

Question 1 .

Given Figure 1 , Figure 2 , and Figure 3 , which of the following output images is produced by the code in Listing 1 ?

A. Figure 4

B. Figure 5

Listing 1 . Question 1.
/*File Java3018ra Copyright 2013 R.G.Baldwin *********************************************************/import java.awt.Color; public class Java3018ra{public static void main(String[] args){new Java3018raRunner().run(); }//end main}//end class Java3018ra //======================================================//class Java3018raRunner{ public Java3018raRunner(){//constructorSystem.out.println("Display your name here."); }//end constructor//----------------------------------------------------// public void run(){Picture skater = crop(new Picture("Prob04a.bmp"),6,59,392,293); Picture hole = crop(new Picture("Prob04b.bmp"),6,59,392,293);Picture snowScene = crop(new Picture("Prob04c.jpg"),6,59,392,293); processBackground(hole,snowScene);redTint(skater); greenScreenDraw(skater,snowScene,0,0);snowScene.explore(); }//end run method//----------------------------------------------------// private void redTint(Picture pic){Pixel[] pixels = pic.getPixels();Color color = null; int red = 0;int green = 0; int blue = 0;for(int cnt = 0;cnt<pixels.length;cnt++){ color = pixels[cnt].getColor(); //Apply a red tint to all non-green pixelsif(!(color.equals(Color.GREEN))){ //Increase the value of the red componentred = color.getRed(); if(red*1.25<255){ red = (int)(red * 1.25);}else{ red = 255;}//end else //Decrease the value of blue and greengreen = (int)(color.getGreen()*0.8); blue = (int)(color.getBlue()*0.8);//Apply the new color to the pixel. pixels[cnt].setColor(new Color(red,green,blue)); }//end if}//end for loop }//end redTint//----------------------------------------------------// private void processBackground(Picture pattern, Picture dest){Pixel[] patternPixels = pattern.getPixels();Pixel[] destPixels = dest.getPixels();Color color = null; int red = 0;int green = 0; int blue = 0;for(int cnt = 0;cnt<patternPixels.length;cnt++){ color = patternPixels[cnt].getColor(); if(color.equals(Color.GREEN)){//Darken corresponding pixel in the destination.color = destPixels[cnt].getColor();int avg = (int)(color.getRed()*0.299+ color.getGreen()*0.587+color.getBlue()*0.114); destPixels[cnt].setColor(new Color(avg,avg,avg)); }else{//Apply a red tint to the corresponding pixel in // the destination.color = destPixels[cnt].getColor();red = color.getRed(); if(red*1.25<255){ red = (int)(red * 1.25);}else{ red = 255;}//end else green = (int)(color.getGreen() * 0.8);blue = (int)(color.getBlue() * 0.8); destPixels[cnt].setColor(new Color(red,green,blue)); }//end else}//end for loop }//end processBackground//----------------------------------------------------// 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 //----------------------------------------------------//private Picture crop(Picture pic,int startCol, int startRow,int width, int height){Picture output = new Picture(width,height); int colOut = 0;int rowOut = 0; int col = 0;int row = 0; Pixel pixel = null;Color color = null; for(col = startCol;col<startCol+width;col++){ for(row = startRow;row<startRow+height;row++){ color = pic.getPixel(col,row).getColor();pixel = output.getPixel(colOut,rowOut); pixel.setColor(color);rowOut++; }//end inner looprowOut = 0; colOut++;}//end outer loop return output;}//end crop }//end class Java3018raRunner

Figure 1 - Prob04a.bmp.

Figure 2 - Prob04b.bmp.

Figure 3 - Prob04c.jpg.

Figure 4 - Possible output image.

Figure 5 - Possible output image.

Answer 1

Figures

Listings

What is the meaning of the following two images?

This image was inserted here simply to insert some space between the questions and the answers to keep them from being visible on the screen at thesame time.

The image is also an example of the kinds of things that we do in my course titled ITSE 2321, Object-Oriented Programming.

This image was also inserted for the purpose of inserting space between the questions and the answers.

Answers

Answer 1

The code in Listing 1 produces the output image shown in Figure 4 .

Back to Question 1

Miscellaneous

This section contains a variety of miscellaneous information.

Housekeeping material
  • Module name: Java3018r Review
  • File: Java3018r.htm
  • Published: 02/17/13
Disclaimers:

Financial : Although the Connexions site makes it possible for you to download aPDF file for this module at no charge, and also makes it possible for you to purchase a pre-printed version of the PDF file, youshould be aware that some of the HTML elements in this module may not translate well into PDF.

I also want you to know that, I receive no financial compensation from the Connexions website even if you purchase the PDF version ofthe module.

In the past, unknown individuals have copied my modules from cnx.org, converted them to Kindle books, and placed them for sale onAmazon.com showing me as the author. I neither receive compensation for those sales nor do I know who does receive compensation. If youpurchase such a book, please be aware that it is a copy of a module that is freely available on cnx.org and that it was made andpublished without my prior knowledge.

Affiliation : I am a professor of Computer Information Technology at Austin Community College in Austin, TX.

-end-

<< 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.