Recupera un'immagine dal Web in Java
-
06-07-2019 - |
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!
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