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.