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.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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.
1 2 3 4 5 |
try { ImageIO.write(crearPNG(), "png", file); } catch (IOException ex) { } |
Estos sencillos pasos nos pueden ayudar a exportar imágenes creadas desde nuestros programas.
Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com