frafael  
            
           
           
          
              
                Setembro 28, 2012,  7:47am
               
               
          #1 
           
         
        
          Bom dia pessoal, estou tendo um problema ao redimensionar uma imagem .PNG, quando eu redimensiono a imagem ela perde a transparência e fica bem estranha. Alguém sabe como eu faço pra resolver isso?
				File destino = new File(path + separator + empresa + separator + "imagens" + separator + "logo" + separator + this.logoFileName);
				InputStream stream = foto.getFile();
				IOUtils.copy(stream, new FileOutputStream(destino));
				ThumbGenerator.generate(destino, destino, 65, 56); 
         
         
           
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            WRYEL  
            
           
           
          
              
                Setembro 28, 2012,  9:17am
               
               
          #2 
           
         
        
          quem é ThumbGenerator ? 
tenta com uma lib mais alto nível: http://code.google.com/p/thumbnailator/wiki/Changes 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            frafael  
            
           
           
          
              
                Setembro 28, 2012,  9:23am
               
               
          #3 
           
         
        
          Opa, desculpe, nem tinha percebido. É minha class que faz esse redimensionamento. Segue ela abaixo.
public class ThumbGenerator {
	public static boolean generate(File source, File dest, int height, int width)
			throws IOException {
		if (source != null && dest != null) {
			FileInputStream input = new FileInputStream(source);
			try {
				BufferedImage bufImage = ImageIO.read(input);
				if (bufImage != null) {
					width = width > bufImage.getWidth() ? bufImage.getWidth() : width;
					height =  bufImage.getHeight();
					double scale = calcScale(bufImage, width, height);
					BufferedImage imageScaled = scale(bufImage, scale);
					FileOutputStream fos = new FileOutputStream(dest);
					ImageIO.write(imageScaled, "JPG", fos);
					fos.close();
					input.close();
					return true;
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return false;
	}
	private static double calcScale(BufferedImage img, int width, int height) {
		double scale1 = (double) width / (double) img.getWidth();
		double scale2 = (double) height / (double) img.getHeight();
		double scale = scale1 > scale2 ? scale2 : scale1;
		return scale;
	}
	private static BufferedImage scale(BufferedImage img, double scale) {
		int w = img.getWidth();
		int h = img.getHeight();
		BufferedImage scaled = new BufferedImage((int) (w * scale),
				(int) (h * scale), BufferedImage.TYPE_INT_RGB);
		Graphics2D g2 = scaled.createGraphics();
		g2.setComposite(AlphaComposite.Src);
		g2.drawImage(img.getScaledInstance((int) (w * scale),
				(int) (h * scale), Image.SCALE_SMOOTH), 0, 0,
				(int) (w * scale), (int) (h * scale), null);
		g2.dispose();
		return scaled;
	}
} 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
          
          
            frafael  
            
           
           
          
              
                Setembro 28, 2012,  9:28am
               
               
          #4 
           
         
        
          Vou tentar aqui com essa lib.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Muito bom, deu certo. Obrigado!