Converter bmp para jpg

Eu preciso converter uma imagem .bmp (bitmap) em um determinado local em uma imagem com extencao .jpg, n quero usar programas para isso pois nao me ajudariam, preciso de uma rotina programada.

Ja busquei aki, vi classes na documentacao da san e ate um pronto tentai usar, mas uns nao funcionavam, outros o meu eclipse sequer reconhecia as classes, e outros n entendi nada.
Alguem poderia explicar como posso fazer essa conversao.
um exemplo pequeno, so para converter mesmo, pq preciso muito disso

tente um desses:

http://www.google.com.br/search?hl=pt-BR&q=java+convert+bmp+to+jpg&btnG=Pesquisar&meta=

[quote=g4j]tente um desses:

http://www.google.com.br/search?hl=pt-BR&q=java+convert+bmp+to+jpg&btnG=Pesquisar&meta=[/quote]

Vlwzao cara, procurei no google max nao tinha visto esse, desculpa a pergunta idiota, mas eu tentei varios codigos antes.

ainda nao tentei esse, mas se nao funcionar, posto aki de novo

Bom gente, com o topido do nosso amigo ai de cima, e mais algumas pesquisas, cheguei ao seguinte codigo

Desculpe os comentarios e os JOptionPane, sao para teste

import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FilenameFilter;
import java.net.InetAddress;
import javax.imageio.ImageIO;
import javax.swing.JOptionPane;

public class ConversorBMP {

	private int tempo;

	public ConversorBMP() {
		File tempoF = new File("c:/tempo.txt");
		if (tempoF.exists()) {
			try {
				
				BufferedReader ler = new BufferedReader(new FileReader(tempoF));
				int t = Integer.parseInt(ler.readLine());
				this.tempo = t;
				ler.close();
				
			} catch (Exception e) {
				try {
					if (InetAddress.getByName("nome").isReachable(5000)) {
						Runtime
								.getRuntime()
								.exec(
										"net send nome erro na conversao do scanner");

					}
					if (InetAddress.getByName("nome").isReachable(5000)) {
						Runtime
								.getRuntime()
								.exec(
										"net send nome erro na conversao do scanner");
					}
					JOptionPane.showMessageDialog(null, "Erro ao inserir dados");					
					System.exit(0);
				} catch (Exception ef) {
					JOptionPane.showMessageDialog(null, "Erro ao inserir dados");
					System.exit(0);
				}
			}
		}else{
			JOptionPane.showMessageDialog(null, "Falta o arquivo tempo.txt no diretorio c:");
			System.exit(0);
		}
	}

	private void temporizador() {
		Thread t = new Thread(new Runnable() {
			public void run() {
				// temporizador
			}
		});
		try {
			// executa código
			t.sleep((tempo * 1000));
		} catch (InterruptedException ex) {
			ex.printStackTrace();
		}
	}

	private void converter() {

		//while (true) {
			File diretorio = new File("Samsung");
			FilenameFilter filtro = new FilenameFilterImp(".bmp");
			File[] files = diretorio.listFiles(filtro);

			if (files != null) {
				for (int i = 0; i < files.length; i++) {
					try {
						BufferedImage image = ImageIO.read(files[i]);

						String[] arquivo = files[i].getPath().split(".bmp");
						File output = new File(arquivo[0]+".jpg");
						JOptionPane.showMessageDialog(null, "Saida");
						JOptionPane.showMessageDialog(null, output);
						JOptionPane.showMessageDialog(null, image);
						ImageIO.write(image,"jpg", output);
						files[i].delete();
						JOptionPane.showMessageDialog(null, "Delete()");
					} catch (Exception ex) {
						ex.printStackTrace();
						JOptionPane.showMessageDialog(null, ex +"\n"+ ex.getCause()+"\n"+ex.getClass()+"\n"+ex.getLocalizedMessage()+"\n"+ex.getMessage()+"\n"+ex.getStackTrace());
						try {
							if (InetAddress.getByName("nome").isReachable(
									5000)) {
								Runtime
										.getRuntime()
										.exec(
												"net send nome erro na conversao do scanner");
							}
							if (InetAddress.getByName("nome").isReachable(
									5000)) {
								Runtime
										.getRuntime()
										.exec(
												"net send nome erro na conversao do scanner");
							}

						} catch (Exception e) {
							JOptionPane.showMessageDialog(null, e);
							System.exit(0);							
						}
					}
				}
			}
			//JOptionPane.showMessageDialog(null, "temporizador");
		//	temporizador();
		//}
	}

	public static void main(String[] args) {
		ConversorBMP bmp = new ConversorBMP();
		bmp.converter();
	}
}

mas bem, quando o codigo executa, da mque a varaivel image esta null, e nao converte, cai no catch, n entendo o pq, alguem pode me explicar ???
O local da pasta esta certo, ela tem permissao, certinho, mas da esse problema.

Que tal:

[code]/**

  • @author glauber_rochab@yahoo.com.br
    */
    public class ConverteBMPtoJPG {
    public static void main(String[] args) {
    File in = new File(“C:\teste\teste.bmp”);
    File out = new File(“C:\teste\teste.jpg”);
    BufferedImage bufi;
    try
    {
    bufi = ImageIO.read(in);
    ImageIO.write(bufi, “jpg”, out);
    }
    catch (IOException ex)
    {
    ex.printStackTrace();
    }
    }
    }[/code]

Fonte: http://forums.sun.com/thread.jspa?threadID=5166420&messageID=9637189