Skip to content

Commit ba3f093

Browse files
committed
Finished SPS
1 parent 3653e6c commit ba3f093

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+259
-5
lines changed

README.md

Lines changed: 4 additions & 1 deletion

SPS_Week4/BabyNames/BabyNames.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Print out total number of babies born, as well as for each gender, in a given CSV file of baby name data.
2+
* Mini Project for week 4.
33
*
44
* @author Xiaomei Wang
55
*/

SPS_Week4/BabyNames/package.bluej

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#BlueJ package file
2-
editor.fx.0.height=873
3-
editor.fx.0.width=1440
2+
editor.fx.0.height=0
3+
editor.fx.0.width=0
44
editor.fx.0.x=0
5-
editor.fx.0.y=23
5+
editor.fx.0.y=0
66
objectbench.height=164
77
objectbench.width=776
88
package.divider.horizontal=0.6
2.11 KB
Binary file not shown.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#BlueJ class context
2+
comment0.target=BatchGrayscale
3+
comment1.params=inImage
4+
comment1.target=edu.duke.ImageResource\ makeGray(edu.duke.ImageResource)
5+
comment2.params=
6+
comment2.target=void\ selectAndConvert()
7+
comment3.params=
8+
comment3.target=void\ testGray()
9+
numComments=4
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* Convert any number of images to a gray scale version by setting all color components of each pixel to the same value.
3+
*
4+
* @author Xiaomei Wang
5+
*/
6+
import edu.duke.*;
7+
import java.io.*;
8+
9+
public class BatchGrayscale {
10+
//I started with the image I wanted (inImage)
11+
public ImageResource makeGray(ImageResource inImage) {
12+
//I made a blank image of the same size
13+
ImageResource outImage = new ImageResource(inImage.getWidth(), inImage.getHeight());
14+
//for each pixel in outImage
15+
for (Pixel pixel: outImage.pixels()) {
16+
//look at the corresponding pixel in inImage
17+
Pixel inPixel = inImage.getPixel(pixel.getX(), pixel.getY());
18+
//compute inPixel's red + inPixel's blue + inPixel's green
19+
//divide that sum by 3 (call it average)
20+
int average = (inPixel.getRed() + inPixel.getBlue() + inPixel.getGreen())/3;
21+
//set pixel's red to average
22+
pixel.setRed(average);
23+
//set pixel's green to average
24+
pixel.setGreen(average);
25+
//set pixel's blue to average
26+
pixel.setBlue(average);
27+
}
28+
//outImage is your answer
29+
return outImage;
30+
}
31+
32+
public void selectAndConvert () {
33+
DirectoryResource dr = new DirectoryResource();
34+
for (File f : dr.selectedFiles()) {
35+
ImageResource inImage = new ImageResource(f);
36+
ImageResource gray = makeGray(inImage);
37+
38+
String fname = inImage.getFileName();
39+
String newName = "gray-" + fname;
40+
gray.setFileName(newName);
41+
gray.draw();
42+
gray.save();
43+
}
44+
}
45+
46+
public void testGray() {
47+
ImageResource ir = new ImageResource();
48+
ImageResource gray = makeGray(ir);
49+
gray.draw();
50+
}
51+
}
56.6 KB
11.1 KB
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#BlueJ package file
2+
editor.fx.0.height=0
3+
editor.fx.0.width=0
4+
editor.fx.0.x=0
5+
editor.fx.0.y=0
6+
objectbench.height=164
7+
objectbench.width=776
8+
package.divider.horizontal=0.6
9+
package.divider.vertical=0.6845018450184502
10+
package.editor.height=364
11+
package.editor.width=674
12+
package.editor.x=333
13+
package.editor.y=123
14+
package.frame.height=600
15+
package.frame.width=800
16+
package.numDependencies=0
17+
package.numTargets=1
18+
package.showExtends=true
19+
package.showUses=true
20+
project.charset=UTF-8
21+
readme.height=58
22+
readme.name=@README
23+
readme.width=47
24+
readme.x=10
25+
readme.y=10
26+
target1.height=50
27+
target1.name=BatchGrayscale
28+
target1.showInterface=false
29+
target1.type=ClassTarget
30+
target1.typeParameters=
31+
target1.width=120
32+
target1.x=70
33+
target1.y=10
2.05 KB
Binary file not shown.

0 commit comments

Comments
 (0)