Criando Imagens com Java
Outro dia precisei criar dinamicamente uma imagem, usando Java.
Esta foi a alternativa a um Applet, que não estava sendo carregado por problemas com o Internet Explorer 7 e 8. Como o Applet apenas exibia uma imagem e não tinha interatividade (a imagem era criada dinamicamente e apenas exibida), optamos por remover o Applet e colocar a imagem pura sendo gerada dinamicamente, e sendo exibida para o cliente.
Fácil e rápido. Coloco aqui abaixo o código que faz isso:
public BufferedImage createImage() {logger.info(”creating image”);try {
public BufferedImage createImage() {
logger.info(”creating image”);
try {
// criando a imagem:
BufferedImage img = new BufferedImage(
100, 100, BufferedImage.TYPE_3BYTE_BGR);
img.createGraphics();
Graphics2D g = (Graphics2D) img.getGraphics();
g.setColor(Color.YELLOW);
g.fillRect(0, 0, 100, 100);
//aqui criaremos apenas uma imagem aleatória…
for (int i = 1; i < 49; i++) {
g.setColor(new Color(5 * i, 5 * i, 4 + 1 * 2 + i * 3));
g.fillRect(2 * i, 2 * i, 3 * i, 3 * 1);
}
return img;
} catch (Exception e) {
logger.error(”erro ao criar imagem! “, e);
}
return null;
}
E pronto! Este método cria a imagem, e você salva-la, ou devolve-la direto para o cliente. Aqui um código que salvaria a imagem, por exemplo:
public void saveImage(BufferedImage img, String ref) {
try {
String format = (ref.endsWith(”.png”)) ? “png” : “jpg”;
ImageIO.write(img, format, new File(ref));
} catch (IOException e) {
e.printStackTrace();
}
}
Moleza. Espero ter ajudado!