Comprimir .PNG

2 respostas
RicardoYukito

Estou precisando comprimir o maximo possivel imagens png, independente se vai perder ou nao a qualidade.

Hoje uso esse metodo para gravar em disco, porém ele nao diminue a qualidade. Não achei nenhuma classe para tratar disso.
Image imagem = null;

	      
		try {
			imagem = ImageIO.read(new File(caminhoImg));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
         
              int new_w , new_h ;
              if (imagem.getWidth(null) > imagem.getHeight(null)){
            	 new_w = 180; 
            	 new_h = 160;
              }else if(imagem.getWidth(null) < imagem.getHeight(null)){
            	 new_w = 150; 
            	 new_h = 160;
              } else {
             	 new_w = 160; 
            	 new_h = 160;
              }
              imagem =  imagem.getScaledInstance(new_w, new_h, Image.SCALE_FAST); 
                   
 	         BufferedImage new_img = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_ARGB);  

 	         Graphics2D g = new_img.createGraphics();   
 	         g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);
 	         g.drawImage(imagem, 0, 0, new_w, new_h, null);  
         
           try {
 			ImageIO.write(new_img, "PNG", new File(caminhoImg));
 		} catch (IOException e) {
 			
 			e.printStackTrace();
 		}  
	}

agradeço qualquer ajuda.

2 Respostas

otaviojava

dá uma olhada.

RicardoYukito

Olá otavio, vi sua dica, mas isso é o que já estou fazendo.
eu precisava de algo pra diminuir não o tamanho, mas a qualidade do png.

Criado 28 de julho de 2011
Ultima resposta 28 de jul. de 2011
Respostas 2
Participantes 2