Opa, me desculpa pelo tópico reaberto, mas eu tentei fazer o que você falou, e não deu certo.
SOURCE:
public class SpriteTransparent { //Classe que pede uma imagem e a transforma em transparente
private BufferedImage ss;
public SpriteTransparent(BufferedImage img) {
this.ss = img; //RECEBE UMA IMAGEM E TIRA O FUNDO ROSA.
for (int x = 0; x < ss.getWidth(); x++) {
for (int y = 0; y < ss.getHeight(); y++) {
//ENTRA EM DOIS FOR PARA TESTAR TODOS OS PIXELS DA IMAGEM
if (ss.getRGB(x, y) == new Color(255, 0, 255, 255).getRGB()){ //SE FOR ROSA
ss.setRGB(x, y, new Color(0, 0, 0, 0).getRGB()); //TRANSFORMA EM TRANSPARENTE
}
}
}
}
public BufferedImage getSpriteTransparent(){ //RETORNA A IMAGEM.
return ss;
}
}
Então, ele realmente pegou todos os pixels rosas e o modificaram. O problema é que não está ficando transparente, e sim preto. Mesmo setando o alpha pra ser transparente, ele não fica. Eu chequei o tipo de BufferedImage dele e mostra BufferedImage.TYPE_3BYTE_BGR. Eu li muito na internet e vi que, para ele ficar transparente, precisa ser BufferedImage.TYPE_INT_ARGB, mas não consigo mudar o tipo. Pode me ajudar?
EDIT:
Eu estou recebendo a imagem com ImageIO.read(), e passando pra essa classe como parâmetro.