color de la imagen PNG cambiar el fondo de Java

Omri:

He estado siguiendo algunos enlaces StackOverflow usando Graphics2D para cambiar el color de fondo de un BufferedImage.

El proyecto que estoy trabajando requiere que leí una imagen PNG a partir de una URL determinada en; la imagen PNG recuperado tiene un fondo transparente, y me gustaría ponerlo en blanco.

Aquí es lo que tengo:

String u = this.format() ;
        BufferedImage image = null ;
        try{
            URL url = new URL(u) ;
            image = ImageIO.read(url) ;
            Graphics2D graphics = image.createGraphics() ;
            graphics.setBackground(Color.WHITE) ;
            graphics.clearRect(0, 0, image.getWidth(), image.getHeight()) ;


            ImageIO.write(image, "png", new File(outPath + fileName)) ;
            graphics.dispose() ;

        }
        catch(IOException e){
            e.printStackTrace() ;
        }

El problema que estoy en es que cuando veo la imagen, la imagen aparece como un cuadro sólido de color blanco. Al parecer tengo superpuesto un fondo blanco en la parte superior de la imagen existente que fui a buscar.

¿Cómo preservar I la imagen original y sólo cambiar el fondo? O configurar el fondo primero y luego superponer la imagen recuperada?

programas de alimentación:

1- Coloque su imagen

image = ImageIO.read(url) ;

2- Crear una nueva BufferedImagedel mismo tamaño

BufferedImage background = new BufferedImage(image.getWidth(), image.getHeight, BufferedImage.TYPE_INT_RGB);

3- Llenar la backgroundimagen con el color deseado

Graphics2D g2d = background.createGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, background.getWidth(), background.getHeight());

4- Dibujar la imagen original en el fondo ...

g2d.drawImage(image, 0, 0, null);
g2d.dispose();

background Ahora se llena con el color deseado y tiene la imagen pintada en la parte superior o ella.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=400843&siteId=1
Recomendado
Clasificación