Presentation is loading. Please wait.

Presentation is loading. Please wait.

Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007

Similar presentations


Presentation on theme: "Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007"— Presentation transcript:

1 Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007
CS U540 Computer Graphics Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007 January 11, 2019

2 Color January 11, 2019

3 Red, Green, and Blue Light
January 11, 2019

4 Adding R, G, and B Values http://en.wikipedia.org/wiki/RGB
January 11, 2019

5 From the Hubble Hubble Site Link January 11, 2019

6 RGB Color Cube (0, 0, 1) (0, 1, 1) (1, 0, 1) (1, 1, 1) (1, 0, 0)
(1, 1, 0) (0, 0, 1) (0, 1, 1) (0, 1, 0) (1, 0, 1) (1, 0, 0) January 11, 2019

7 RGB Color Cube The Dark Side
(0, 0, 0) (1, 1, 0) (0, 0, 1) (1, 0, 1) (1, 0, 0) (0, 1, 1) (0, 1, 0) January 11, 2019

8 Doug Jacobson's RGB Hex Triplet Color Chart
January 11, 2019

9 Making Colors Darker (1, 0, 0) (.5, 0, 0) (0, 0, 0) (0, 1, 0)
(0, .5, 0) (0, 0, 0) (0, 0, 1) (0, 0, .5) (0, 0, 0) (1, 1, 0) (0, .5, .5) (0, 0, 0) (1, 0, 1) (.5, 0, .5) (0, 0, 0) (1, 1, 0) (.5, .5, 0) (0, 0, 0) January 11, 2019

10 Getting Darker, Left to Right
for (int b = 255; b >= 0; b--){ c = new Color(b, 0, 0); g.setPaint(c); g.fillRect(800+3*(255-b), 50, 3, 150); c = new Color(0, b, 0); g.setPaint(c); g.fillRect(800+3*(255-b), 200, 3, 150); c = new Color(0, 0, b); g.setPaint(c); g.fillRect(800+3*(255-b), 350, 3, 150); c = new Color(0, b, b); g.setPaint(c); g.fillRect(800+3*(255-b), 500, 3, 150); c = new Color(b, 0, b); g.setPaint(c); g.fillRect(800+3*(255-b), 650, 3, 150); c = new Color(b, b, 0); g.setPaint(c); g.fillRect(800+3*(255-b), 800, 3, 150); } January 11, 2019

11 Gamma Correction Generally, the displayed intensity is not linear in the input (0  a  1). dispIntensity = (maxIntensity)a To find  Find a that gives you .5 intensity Solve .5 = a  = ln(.5) ln(a) January 11, 2019

12 Gamma Correction Gamma half black half red (127, 0, 0)
January 11, 2019

13 Making Pale Colors (1, 0, 0) (1, .5, .5) (1, 1, 1) (0, 1, 0)
(.5, 1, .5) (1, 1, 1) (0, 0, 1) (.5, .5, 1) (1, 1, 1) (1, 1, 0) (.5, 1, 1) (1, 1, 1) (1, 0, 1) (1, .5, 1) (1, 1, 1) (1, 1, 0) (1, 1, .5) (1, 1, 1) January 11, 2019

14 Getting Paler, Left to Right
for (int w = 0; w < 256; w++){ c = new Color(255, w, w); g.setPaint(c); g.fillRect(3*w, 50, 3, 150); c = new Color(w, 255, w); g.setPaint(c); g.fillRect(3*w, 200, 3, 150); c = new Color(w, w, 255); g.setPaint(c); g.fillRect(3*w, 350, 3, 150); c = new Color(w, 255, 255); g.setPaint(c); g.fillRect(3*w, 500, 3, 150); c = new Color(255,w, 255); g.setPaint(c); g.fillRect(3*w, 650, 3, 150); c = new Color(255, 255, w); g.setPaint(c); g.fillRect(3*w, 800, 3, 150); } January 11, 2019

15 Portable Pixmap Format (ppm)
A "magic number" for identifying the file type. A ppm file's magic number is the two characters "P3". Whitespace (blanks, TABs, CRs, LFs). A width, formatted as ASCII characters in decimal. Whitespace. A height, again in ASCII decimal. The maximum color value again in ASCII decimal. Width * height pixels, each 3 values between 0 and maximum value. start at top-left corner; proceed in normal English reading order three values for each pixel for red, green, and blue, resp. 0 means color is off; maximum value means color is maxxed out characters from "#" to end-of-line are ignored (comments) no line should be longer than 70 characters January 11, 2019

16 ppm Example P3 # feep.ppm 4 4 15 January 11, 2019

17 private void saveImage() { String outFileName = “my.ppm";
File outFile = new File(outFileName); int clrR, clrG, clrB; try { PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outFile))); out.println("P3"); out.print(Integer.toString(xmax-xmin+1)); System.out.println(xmax-xmin+1); out.print(" "); out.println(Integer.toString(ymax-ymin+1)); System.out.println(ymax-ymin+1); out.println("255"); for (int y = ymin; y <= ymax; y++){ for (int x = xmin; x <= xmax; x++) { // compute clrR, clrG, clrB out.print(" "); out.print(clrR); out.print(" "); out.print(clrG); out.print(" "); out.println(clrB); } out.close(); } catch (IOException e) { System.out.println(e.toString()); January 11, 2019


Download ppt "Prof. Harriet Fell Spring 2007 Lecture 4 - January 17, 2007"

Similar presentations


Ads by Google