Altrimenti prova così:
codice:
public void startProcess() {
try{
BufferedImage buf_img_in=ImageIO.read(new File("percorso/tuofile.jpg"));
BufferedImage buf_img_out=convertToGrayScale(buf_img_in);
ImageIO.write(buf_img_out, "jpg",new File("percorso/fileout.jpg"));
}
catch(IOException ioex){
ioex.printStackTrace();
}
System.out.println("Fine");
}
public static BufferedImage convertToGrayScale(BufferedImage image) {
BufferedImage result = new BufferedImage(
image.getWidth(),
image.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
Graphics g = result.getGraphics();
g.drawImage(image, 0, 0, null);
g.dispose();
return result;
Ovviamente se devi convertire un'immagine in memoria ImageIO.write la puoi tralasciare ed a ImageIO.read passerai un InputStream.
Ciao