Duke Java programming
#Now put this all together in one program that batch processes several images,
#creates and saves new images (with new filenames) that are grayscale versions of each image.
import edu.duke.*;
import java.io.*;
public class grayScale {
public ImageResource makeGray(ImageResource inImage){
ImageResource outImage = new ImageResource(inImage.getWidth(),inImage.getHeight());
for (Pixel pixel: outImage.pixels()){
Pixel inPixel = inImage.getPixel(pixel.getX() , pixel.getY());
int average = (inPixel.getRed() + inPixel.getBlue() + inPixel.getGreen());
pixel.setRed(average);
pixel.setGreen(average);
pixel.setBlue(average);
}
return outImage;
}
public void selectAndConvert() {
DirectoryResource dr = new DirectoryResource();
for (File f:dr.selectedFiles()){
ImageResource inImage = new ImageResource (f);
ImageResource outImage = makeGray(inImage);
outImage.draw();
String fname = inImage.getFileName();
String newName = "gray-" + fname;
outImage.setFileName(newName);
outImage.draw();
outImage.save();
}
}
}