Crear imagen PNG para exportar con Java

Código para crear una imagen PNG en un buffer para exportarla a un archivo

El siguiente código puede ser útil si por ejemplo tenemos una aplicación gráfica con un lienzo donde se pintan figuras y queremos exportar toda la imagen a un archivo externo como un PNG.

La función crea un buffer donde se almacena la imagen.

Los atributos getWidth() y getHeight() son el tamaño de la imagen. Pintamos un rectángulo en blanco del mismo tamaño que el lienzo, que será el color de fondo por defecto.

public BufferedImage crearPNG() {
    BufferedImage bufferedImage = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = bufferedImage.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g2.setColor(Color.white);
    g2.fillRect(0, 0, this.getWidth(), this.getHeight());
    // Aquí deberíamos introducir el código que queramos pintar.
    g2.dispose();
    return bufferedImage;
}

Una posible forma de exportar la imagen PNG sería utilizar la función write en un archivo file ya definido.

try {
    ImageIO.write(crearPNG(), "png", file);
} catch (IOException ex) {
    
}

Estos sencillos pasos nos pueden ayudar a exportar imágenes creadas desde nuestros programas.