ImageIO

5 respostas
MarceloFernandes

Fala aeh Pessoal :smiley:

Estou tentando salvar uma imagem via linha de código, se eu tento colocar uma imagem que está dentro do meu computador via BufferedImage e depois salva-la em outra parte do meu hd com outro nome eu consigo

BufferedImage imagem = ImageIO.read(new File("caminho_da_imagem.jpg"));
		ImageIO.write(imagem, "JPG", new File("novo_caminho_da_imagem.jsp"));

Mas eu estou tentando acessar uma imagem de um site qualquer, mas não consigo, com o mesmo código, por exemplo

BufferedImage imagem = ImageIO.read(new File("http://wen.ch/storage/scrap/littleninja1.jpg"));
		ImageIO.write(imagem, "JPG", new File("C:\\nova_imagem.jpg"));

Gostaria de saber não funciona, e como eu poderia fazer isso funcionar…
O erro que aparece é que ele não consegue ler o arquivo

Desde já Obrigado :slight_smile:

5 Respostas

T

Você não pode usar um “new File (“http alguma coisa”)” mas sim um “new URL (“http alguma coisa”)”. Veja a documentação.

MarceloFernandes

Verdade, estava usando o método errado mas mesmo com o new URL ainda não conseguie, ele me diz "Can’t get input stream from URL! "

BufferedImage image = null;
		   
	    try {

	        // Read from a URL
	        URL url = new URL("http://www.anime-france.info/images/naruto.jpg");
		image = ImageIO.read(url);
	    } catch ( IOException e) {
		out.println("Erro:"+e.getMessage());
	    }

Alguem tem ideia pq isso acontece ?

T

Você tem acesso a esse site a partir da máquina que está rodando a sua aplicação?
(Se houver um proxy no meio aí complica, porque pode ser que esteja esbarrando no proxy).

MarceloFernandes

Uhnn… pode ser verdade, estou fazendo do pc do meu trampo, mas eu consegui acessar sem problemas o site do google, mas até a imagem do site do google não abre… é esquisito pq to procurando sobre isso e parece que ninguem está tendo esse mesmo problema que eu

T

Só para lhe explicar melhor. O Java não lê as configurações de proxy do seu browser, você deve fornecê-las manualmente (definindo umas propriedades com System.setProperty) , e ele não consegue acessar todos os tipos de proxy. Se por exemplo você estiver usando um proxy da Microsoft no seu serviço pode ser que o browser consiga passar as configurações de usuário e senha, mas o Java não.

http://java.sun.com/j2se/1.5.0/docs/guide/net/proxies.html

Criado 10 de setembro de 2007
Ultima resposta 12 de set. de 2007
Respostas 5
Participantes 2