Quindi sto creando un'applicazione per archiviare i collegamenti a tutte le applicazioni preferite dell'utente, comportandosi come un hub. Posso avere il supporto per i file reali e ho un parser .lnk
per le scorciatoie. Ho pensato che sarebbe stato abbastanza buono per l'applicazione supportare anche le scorciatoie di Internet. Questo è quello che sto facendo:Come ottenere favicon.ico da un sito Web utilizzando Java?
Supponiamo che sto cercando di ottenere Google's icon (http://www.google.com/favicon.ico
).
comincio da sbarazzarsi delle pagine in più (ad esempio
www.google.com/anotherpage
sarebbe diventatowww.google.com
.Poi, io uso
ImageIO.read(java.net.URL)
per ottenere l'immagine.
Il problema è che ImageIO
non restituisce mai un'immagine quando chiamo questo metodo:
String trimmed = getBaseURL(page); //This removes the extra pages
Image icon = null;
try {
String fullURLString = trimmed + "/favicon.ico";
URL faviconURL = new URL(fullURLString);
icon = ImageIO.read(faviconURL);
} catch (IOException e) {
e.printStackTrace();
}
return icon;
Ora ho due domande:
- fa Java supporta il formato ICO, anche se è da Microsoft?
- Perché
ImageIO
non riesce a leggere dall'URL?
Grazie in anticipo!
[Se nessun ImageReader registrato dichiara di essere in grado di leggere il flusso risultante, viene restituito un valore nullo.] (Http://docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html) –
@HunterMcMillen No, puoi spiegarlo un po '? – mattbdean
sei sicuro che 'getBaseURL()' rimuova anche l'ultima stringa? In caso contrario, stai cercando di ottenere l'immagine da www.google.com//favicon.ico. – 11684