Also mache ich eine Anwendung, um Verknüpfungen zu allen Lieblingsanwendungen des Benutzers zu speichern, die quasi wie ein Hub wirken. Ich kann Unterstützung für tatsächliche Dateien haben und ich habe einen .lnk
Parser für Verknüpfungen. Ich dachte, es wäre gut, wenn die Anwendung auch Internet-Shortcuts unterstützt. Dies ist, was ich tue:Wie bekomme ich favicon.ico von einer Website mit Java?
Angenommen, ich versuche, Google's icon (http://www.google.com/favicon.ico
) zu bekommen.
ich beginnen, indem der Extraseiten loszuwerden (zB
www.google.com/anotherpage
würdewww.google.com
werden.Dann habe ich
ImageIO.read(java.net.URL)
, um das Bild zu bekommen.
Das Problem ist, dass ImageIO
gibt nie ein Bild zurück, wenn ich diese Methode aufrufen:
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;
Jetzt habe ich zwei Fragen:
- Does Java unterstützt das ICO-Format, obwohl es von Microsoft ist?
- Warum kann
ImageIO
nicht von der URL gelesen werden?
Vielen Dank im Voraus!
[Wenn kein registrierter ImageReader den resultierenden Stream lesen kann, wird null zurückgegeben.] (Http://docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html) –
@HunterMcMillen Nein, kannst du das ein bisschen erklären? – mattbdean
Sind Sie sicher, dass 'getBaseURL()' auch den letzten String entfernt? Wenn nicht, versuchen Sie, das Bild von www.google.com//favicon.ico zu erhalten. – 11684