Ir para conteúdo
Faça parte da equipe! (2024) ×

Criando imagens com Java


SubCash
 Compartilhar

Posts Recomendados

Criando imagens com Java

 

Neste artigo vamos discutir e ver como podemos utilizar o Java para criar, gerar e manipular imagens simples, como gráficos e textos. A partir deste rápido artigo, podemos ter uma boa base para poder desenvolver componentes mais elaborados para geração de imagens.

 

Criandos as imagens

 

Geralmente, os componentes Swing já possuem um buffer de imagem, e só precisamos implementar o método paint( ). Para criarmos nossas imagens, teremos então que criar um buffer para a nossa imagem e então criar um objeto do tipo java.awt.Graphics.

 

A classe java.awt.image.BufferedImage é uma subclasse de java.awt.Image, que usa um bloco de memória, e é onde vamos criar nossa imagem. No construtor da classe passaremos 3 parâmetros: width (largura da imagem), height (altura da imagem) e o tipo da imagem. Inicialmente vamos usar o tipo de imagem definido por BufferedImage.TYPE_INT_RGB, que não permite imagens transparentes. Mas isto está fora do escopo deste artigo.

 

Para criamos o gráfico que utilizaremos, usamos o seguinte código:

 

É necessário se cadastrar para acessar o conteúdo.

 

Viu como é simples? Com algumas linhas de código, escreves uma classe que representa e desenha uma gráfico em pizza, que é muito utilizado em aplicações comerciais.

 

86-002.gif

 

Isto mostra o poder e a facilidade de Java para manipulação deste tipo de aplicação. As APIs oferecidas pela Sun são extremamente poderosas.

 

Às vezes desejamos não apenas gerar e apresentar as imagens, mas podemos também salvá-las em disco, e para isso utilizaremos a classe ImageIO, do pacote javax.imageio. Esta API do Java, permite salvar as imagens nos formatos JPEG e PNG. Infelizmente, por motivos de licensa, não é possível salvar no formato GIF. Mas existem APIs de terceiros para salvar as imagens no formato GIF. O Google pode te dar uma boa ajuda.

 

O procedimento para gravar a imagem em disco é simples, veja:

 

ImageIO.write( pie.getBufferedImage(), "png", new File("img.png") );

 

O primeiro parâmetro do método estático write() é o buffer da imagem gerada, depois o tipo da imagem, que no nosso caso é PNG e por último o File que representa qual o arquivo a ser criado.

 

Uma outra opção do método write() é informar um OutputStream ao invés de um File. Com isso, podemos facilmente fazer um Servlet Java que gera uma imagem. Exemplo:

 

1 response.setContentType("image/png");

2 OutputStream os = response.getOutputStream();

3 ImageIO.write(buffer, "png", os);

4 os.close();

 

 

Neste caso mudamos o content type para image/png, que é uma imagem PNG. Em seguida passamos o OutputStream de resposta com o cliente web para o método write(), que grava na resposta os dados da imagem gerada e representada por buffer. Simples!

 

Por vezes, desejamos incrementar nossas imagens, adicionando um texto decorativo, e isto é tão simples quanto gerar a própria imagem. Podemos, inclusive, escolher a fonte, o tamanho e a posição do texto. Vejam o exemplo:

 

1 Font font = new Font("Courier", Font.BOLD, 30);

2 g.setColor( Color.BLUE );

3 g.setFont( font );

4 g.drawString("GUJ",0,20);

 

 

A classe Font, como o nome sugere, representa uma Font do sistema. No seu construtor, informamos no nome da fonte, suas características (no caso BOLD) e o seu tamanho. Depois só informamos ao gráfico a cor do texto, a fonte a ser usada e mandamos desenhar o texto com o método drawString(), informando a String do texto a posição (X, Y) na imagem.

 

86-003.gif

 

Daí pra frente é só você usar a sua imaginação e desenvolver suas aplicações.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
  • 2 semanas atrás...

Ótimo tutorial mano, só qe faltou cor nisso ai mano.

Da uma editada manera q vai ficar muito melhor de ler e vai ficar melhor de se entender.

Espero ter Ajudado!

35HI8SZ.png

"Se existe um inferno, eu já tenho um assento reservado na primeira fila" - Dexter

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.