Estou utilizando o código abaixo, para reduzir o tamanho de uma imagem. Porém ele só funciona quando executo passo-a-passo, através do DEBUG. Quando executo direto, sem passar pelo debug, a imagem é gerada com as dimensões corretas, porém ela fica toda PRETA.
Estou utilizando NetBeans. Alguém poderia me ajudar???
[color=“red”]public void redimensiona(String arqOrigem, String arqDestino){
ImageObserver imOb = null;
Image img = null;
File file = new File(arqDestino);
Image inImage = new ImageIcon(arqOrigem).getImage();
int maxDim = 100;
double scale = 0;
if (inImage.getWidth(null) > inImage.getHeight(null)){
scale = (double) maxDim / (double) inImage.getWidth(null);
}else{
scale = (double) maxDim / (double) inImage.getHeight(null);
}
int scaledW = (int) (scale * inImage.getWidth(null));
int scaledH = (int) (scale * inImage.getHeight(null));
img = inImage.getScaledInstance(scaledW, scaledH, Image.SCALE_DEFAULT);
try{
int i = 0;
while(img.getHeight(imOb)<scaledH || img.getWidth(imOb)<scaledW){
i++;
System.out.println(i + " x " + img.getHeight(imOb) + " x " + img.getWidth(imOb));
}
//img.wait(1000);
BufferedImage buffer = new BufferedImage(img.getWidth(imOb), img.getHeight(imOb), BufferedImage.SCALE_SMOOTH);
Graphics g = buffer.createGraphics();
g.drawImage(img, 0, 0, null);
g.dispose();
ImageIO.write(buffer, "JPG", file);
}catch (Exception e){
System.out.println("....erro.....");
}
}[/color]