Domanda

Sto provando a leggere un'immagine che risiede da qualche parte sul web dal mio programma Java. Finora ho caricato correttamente un'immagine utilizzando il seguente codice.

URL url = new URL("http://www.google.com/images/nav_logo4.png");
Image img = Toolkit.getDefaultToolkit().getImage(url);

Quello che voglio sapere è perché questo codice (che è il primo che ho provato) non funziona:

BufferedImage img = ImageIO.read(new File("http://www.google.com/images/nav_logo4.png"));

Ciò avrebbe il vantaggio di darmi un BufferedImage . Inoltre, come posso fare il blocco di codice sopra finché l'immagine non viene caricata? So di poter usare un ImageObserver , ma esiste un modo più semplice?

Quando provo la seconda opzione, ottengo questa eccezione:

javax.imageio.IIOException: Can't read input file!
È stato utile?

Soluzione

A File non può fare riferimento a un URL.

Anche se non l'ho provato, sembra che ci sia un ImageIO.read (URL) , che può prendere un URL come input come URL oggetto.

Suppongo che sarebbe chiamato come segue:

ImageIO.read(new URL("http://url/to/my/image.png"));

Altri suggerimenti

Gli oggetti file non possono essere letti dagli URL

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top