Transparência em uma imagem

Olá turma!!!

Gostaria de saber como colocar o fundo transparente em uma imagem construída pela classe BufferImage.
Obrigada. :?: :?: :?:

A transparência está no canal alpha no pixel.
Para isso, utilize BufferedImage.TYPE_INT_ARGB e então passe a matriz de cores do pixel com os 4 canais de cor: alpha, red, green e blue.

Eu já utilizei a classe BufferImage passando como argumento o TYPE_INT_ARGB, e para pintar utilizei a classe Graphics2D, porém a imagem não fica com o fundo transparente, eu gostaria q o fundo da imagem ficasse da cor do fundo q eu setar para o Canvas. Vc mencionou alguma coisa a respeito de fazer uma matriz setando as cores do pixel, como eu poderia fazer isso?

Pelo método que eu falei você teria que criar a imagem um pouco mais “à mão”, pixel a pixel, ao invés de pela classe que você mencionou.
A classe BufferedImage tem o método setRGB em que você passa como parâmetro a posição x e y do pixel e sua cor.
Quanto a matriz com a cor, veja no código abaixo como você pode trabalhar com ela:

// (1) decoding int rgba = ...; // comes from PixelGrabber, BufferedImage.getRGB etc. int red = (rgba >> 16) & 0xff; int green = (rgba >> 8) & 0xff; int blue = rgba & 0xff; int alpha = (rgba >> 24) & 0xff; // (2) now modify red, green, blue and alpha as you like; // make sure that each of the four values stays in the // interval 0 to 255 ... // (3) and encode back to an int, e.g. to give it to MemoryImageSource or // BufferedImage.setRGB rgba = (alpha << 24) | (red << 16) | (green << 8) | blue;

Mas realmente deve existir algum jeito mais simples…

Muito obrigada pela ajuda.
Fico muito agradecida