Redimensionar Imagem

0 respostas
L

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]
Criado 27 de julho de 2006
Respostas 0
Participantes 1