Problema em redimencionar imagens gif com Graphics2D

1 resposta
souarte

por favor, alguem me dá uma luz!

public ImageIcon resizeImage(Image im) {
		int width=20, height=20;
		BufferedImage buffer = new BufferedImage(width, height, BufferedImage.TRANSLUCENT);
		Graphics2D g = buffer.createGraphics();
		g.drawImage(im , 0, 0, width, height, null);
		ImageIcon icon = new ImageIcon(buffer);
		g.dispose();
		return icon;

}

a imagem que entra como parâmetro desse método é uma GIF. que o programa pega do servidor.
esse método retorna um imageicon que deveria ser usado no construtor de um JLabel. porém a imagem não aparece. e se eu mudar TRANSLUCENT por outra propriedade, a imagem aparece de cor preta. não intendo o que tá acontecendo.
fiz testes com outras imagens e deu tudo certo. usei outras imagens gif e mesmo assim continuou dando certo. só não dá certo com as gif que o programa pega do servidor. e mesmo com essas, deu certo a primeira vez, mas somente a primeira.
alguem me ajuda?

1 Resposta

souarte

bom pessoal, resolvi o problema, porém tenho medo de que isso seja um gambiarra.
adicionei no inicio do método a seguinte linha:
ImageIcon icon = new ImageIcon(im);
aí a imagem começou a aparecer.
me parece a a Imagem só tem a url, mas não tem a imagem ainda. aí eu mandava o método pintar uma imagem que nao existia. agora a seguinte pergunta: isso é uma gambiarra? há uma forma mais bonita de se fazer isso?

public ImageIcon resizeImage(Image im) { ImageIcon icon = new ImageIcon(im); int width=20, height=20; BufferedImage buffer = new BufferedImage(width, height, BufferedImage.TRANSLUCENT); Graphics2D g = buffer.createGraphics(); g.drawImage(im , 0, 0, width, height, null); icon = new ImageIcon(buffer); g.dispose(); return icon; }

Criado 22 de julho de 2008
Ultima resposta 22 de jul. de 2008
Respostas 1
Participantes 1