JavaScript is required to use Bungie.net

OffTopic

Surf a Flood of random discussion.
Edited by colbyrules8: 10/25/2013 2:11:14 AM
5

Help with Java Programming

I just finished up with a simple project we had for Computer Science 1302 and I saw that there was extra credit for it and I was wondering if any of you could help me out with it. The program itself simply takes a BMP image and makes it black and white and creates the new output file within the same folder as the original image (Which has to be in your projects folder). The extra credit that I simply need help with is : [b]show the outputted file in a ScrollPane (hint: requires ImageIO class to show a BMP in an ImageIcon).[/b] Here is the code: [quote] import java.io.*; import javax.swing.*; public class Bitmapper { public static void main(String[] args) throws IOException { //ask user for a file (BMP) to open JFileChooser chooser = new JFileChooser(); int status = chooser.showOpenDialog(null); if (status != JFileChooser.APPROVE_OPTION) { JOptionPane.showMessageDialog(null, "No file chosen."); } else { File file = chooser.getSelectedFile(); String outfile = chooser.getSelectedFile().getParentFile().getAbsolutePath(); String inName = file.getName(); // input file name to string outfile += "\\" + inName.substring(0, inName.length() -4) + "_gray.bmp"; // generate output file name // Handling binary (not text) data, so use FileInputStream FileInputStream in = new FileInputStream(file); FileOutputStream out = new FileOutputStream(outfile); int B, G, R = 0; int counter = 0; while((B=in.read())!=-1) { if (++counter>54) // skip past Bitmap headers { G = in.read(); //read green and blue bytes R = in.read(); int gray = (B + G + R)/3; B = gray; G = gray; R = gray; out.write(R); out.write(G); //B = Math.min(B+100, 255); // Lighten image } out.write(B); } in.close(); out.close(); } } } [/quote]

Posting in language:

 

Play nice. Take a minute to review our Code of Conduct before submitting your post. Cancel Edit Create Fireteam Post

View Entire Topic
  • Edited by Emacs: 10/25/2013 2:14:21 AM
    If you need to grey scale the image, you need to average all of the colour channel values in each pixel, and set each of the channels equal to that average value. If it's strictly Black and White, then you need to set the colour channel values to 00 or FF based on the average being over or under some value. I'm not sure all of the libraries you're using (images and interface) are standard, so I can't help with that.

    Posting in language:

     

    Play nice. Take a minute to review our Code of Conduct before submitting your post. Cancel Edit Create Fireteam Post

    5 Replies
    You are not allowed to view this content.
    ;
    preload icon
    preload icon
    preload icon