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
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.