A resposta está no Tutorial da documentação da Java para gravar / salvar uma imagem .
A Image I/O
classe fornece o seguinte método para salvar uma imagem:
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
O tutorial explica que
A classe BufferedImage implementa a interface RenderedImage.
então ele pode ser usado no método
Por exemplo,
try {
BufferedImage bi = getMyImage(); // retrieve image
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
// handle exception
}
É importante cercar a write
chamada com um bloco try, porque, conforme a API , o método gera IOException
"se ocorrer um erro durante a gravação"
Também são explicados o objetivo, os parâmetros, os retornos e os arremessos do método, com mais detalhes:
Grava uma imagem usando um ImageWriter arbitrário que suporta o formato fornecido em um arquivo. Se já houver um arquivo presente, seu conteúdo será descartado.
Parâmetros:
im - uma RenderedImage a ser gravada.
formatName - uma String contendo o nome informal do formato.
output - um arquivo a ser gravado.
Devoluções:
false se nenhum gravador apropriado for encontrado.
Lances:
IllegalArgumentException - se algum parâmetro for nulo.
IOException - se ocorrer um erro durante a gravação.
No entanto, formatName
ainda pode parecer bastante vago e ambíguo; o tutorial esclarece um pouco:
O método ImageIO.write chama o código que implementa o PNG gravando um "plug-in do gravador PNG". O termo plug-in é usado, pois o Image I / O é extensível e pode suportar uma ampla variedade de formatos.
Mas os seguintes plug-ins de formato de imagem padrão: JPEG, PNG, GIF, BMP e WBMP estão sempre presentes.
Para a maioria das aplicações, é suficiente usar um desses plugins padrão. Eles têm a vantagem de estar prontamente disponível.
Existem, no entanto, formatos adicionais que você pode usar:
A classe Image I / O fornece uma maneira de conectar o suporte a formatos adicionais que podem ser usados, e existem muitos desses plug-ins. Se você estiver interessado em quais formatos de arquivo estão disponíveis para carregar ou salvar em seu sistema, use os métodos getReaderFormatNames e getWriterFormatNames da classe ImageIO. Esses métodos retornam uma matriz de cadeias listando todos os formatos suportados neste JRE.
String writerNames[] = ImageIO.getWriterFormatNames();
A matriz de nomes retornada incluirá quaisquer plug-ins adicionais instalados e qualquer um desses nomes poderá ser usado como um nome de formato para selecionar um gravador de imagens.
Para um exemplo completo e prático, pode-se consultar o exemplo da Oracle SaveImage.java
.