Juntar duas imagens numa só

3 respostas
J

Olá Pessoal,

Quero criar um método que você passe dois objetos Image como parametro e ele te retorne um objeto Image que é o resultado de uma imagem desenhada em cima da outra (como se cada imagem fosse uma camada).

Como que eu posso fazer isso?

Seria algo do tipo:

public Image juntaCamadas(Image camada1, Image camada2){

   Image novaImagem;
   Graphics g = ...

   (...)

   g.drawImage(camada1);
   g.drawImage(camada2);

   (...)

   return novaImagem;

}

Valeu!!

3 Respostas

T

Está certo, se a camada1 for uma imagem opaca (fundo) e a camada2 for uma imagem com pixels transparentes (frente).

Veja o exemplo que vem com o JDK, no arquivo demo\jfc\Java2D\src\java2d\demos\Images\DukeAnim.java.

J

thingol, é mais ou menos isso mesmo, a camada1 é uma imagem opaca, e a camada2 é uma imagem com pixels transparentes.

Mas no código que você falou do DukeAnim, no método que junta as duas camadas, ele pega o Graphics como parâmetro. Mas eu quero criar um método que não pegue um objeto Graphics como parâmetro, quero que passe só as duas imagens, e ele retorne uma imagem que é o resultado de uma imagem desenhada em cima da outra!

Eu tentei o seguinte:

public Image juntaCamadas(Image camada1, Image camada2){
 
   BufferedImage novaImagem = new BufferedImage(100,100,BufferedImage.TYPE_INT_RGB);
   Graphics g = novaImagem.getGraphics();
 
   g.drawImage(camada1,0,0,null);
   g.drawImage(camada2,0,0,null);
 
   return novaImagem;
 
}

Só que isso me retornou uma imagem toda preta!! O que está errado???

Obrigado.

B

Resolveu??

Abraços

Criado 17 de agosto de 2006
Ultima resposta 29 de jan. de 2009
Respostas 3
Participantes 3