2016-05-26 1 views
1

J'ai écrit une méthode pour redimensionner BufferedImages pour moi, mais après cela, les images .png finissent par perdre leur transparence et à la place, ils obtiennent un fond noir.Comment faire pour supprimer l'arrière-plan noir après redimensionnement BufferedImages java

public BufferedImage getSizedImg(BufferedImage otherImage,int width,int height){ 
    BufferedImage outputImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 

    Graphics g = outputImg.createGraphics(); 
    g.drawImage(otherImage, 0, 0, width, height, null); 
    g.dispose(); 
    return outputImg; 
} 

Comment puis-je corriger la méthode pour que les images conservent leur transparence?

Répondre

4

Simple. Lorsque vous créez votre nouveau redimensionnée BufferedImage ici:

BufferedImage outputImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); 

ne pas utiliser BufferedImage.TYPE_INT_RGB mais plutôt BufferedImage.TYPE_INT_ARGB. Le "A" signifie "alpha" et cela vous donne la transparence. Pour plus à ce sujet, s'il vous plaît voir le BufferedImage API.