Carregar imagem png com transparencia

Tenho uma imagem png e ela tem transparencia em certas partes mas quando uso ImageIO.read( new File(caminhoImagem)) ele me retorna uma imagem sem transparencia, posso deixar a imagem transparente apos carrega-la, mas seria melhor se ela ja viesse com as partes transparentes, como faz isso?

O ImageIO.read carrega com transparência.

Como você está fazendo para desenhar essa imagem na tela?

Eu estava fazendo assim, tenho dois BufferedImages(img1, img2), carrego a imagem em img2
e depois mando desenhar em cima de img1, por isso preciso da transparencia.

Mais estranho é que quando carrego a imagem e mando a cor branca ficar transparente usando
codigo java, ela não aceita, preciso criar um novo BufferedImage(biAux), desenhar img2 em
biAux e depois tornar este ultimo transparente pra poder desenhar em img1, dessa forma funciona.

Estou declarando os BufferedImage da seguinte maneira
BufferedImage img1=new BufferedImage(24,32,BufferedImage.TYPE_INT_ARGB);

Eu já tive problemas com transparência de imagem no SWT… eu estava usando o composite para colocar a imagem, tive que usar o label, isso mesmo, aquele usado para texto geralmente… Nele a imagem ficava com transparência…

Sem postar seu código tudo fica muito nebuloso.

O que eu fiz foi isso

BufferedImage img1=ImageIO.read( new File(caminhoDesenho1));
BufferedImage img2=ImageIO.read( new File(caminhoDesenho2));
img1.createGraphics().drawImage(img2, 0, 0, null);

O codigo acima não funciona quando mando desenhar img1 a cor branca de img2 que é transparente fica por cima da img1

Se eu fizer assim funciona

BufferedImage img1=ImageIO.read( new File(caminhoDesenho1));
BufferedImage img2=ImageIO.read( new File(caminhoDesenho2));
BufferedImage biAux= new BufferedImage(24,32,BufferedImage.TYPE_INT_ARGB);
biAux.createGraphics().drawImage(img2, 0, 0, null);
deixarTransparente(biAux);
img1.createGraphics().drawImage(biAux, 0, 0, null);

Você tem certeza que a imagem 1 tem transparência? Se não tiver, o java não fará qualquer calculo com transparência, ainda que a imagem 2 seja transparente. Aí, o que vc fez (gerar primeiro uma imagem em ARGB) é o certo.

Outra coisa. Guarde em algum lugar o objeto Graphics criado com o createGraphics() pois é necessário chamar o método dispose antes de terminar de usa-lo.

O problema realmente é minha imagem, tentei com outra e funcionou certinho, obrigado pela ajuda e pela dica do objeto Graphics