Así que estoy haciendo una aplicación para almacenar accesos directos a todas las aplicaciones favoritas del usuario, actuando como un centro. Puedo tener soporte para archivos reales y tengo un analizador .lnk
para accesos directos. Pensé que sería bueno que la aplicación también admita accesos directos a Internet. Esto es lo que estoy haciendo:¿Cómo obtener favicon.ico desde un sitio web usando Java?
Supongamos que estoy tratando de obtener Google's icon (http://www.google.com/favicon.ico
).
comienzo a cabo mediante la eliminación de las páginas adicionales (por ejemplo
www.google.com/anotherpage
se convertiría enwww.google.com
.Entonces, yo uso
ImageIO.read(java.net.URL)
para obtener la imagen.
El problema es que ImageIO
nunca devuelve una imagen cuando llamo a este método:
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;
Ahora tengo dos preguntas:
- ¿El Java compatibles con el formato ICO a pesar de que es de Microsoft?
- ¿Por qué
ImageIO
no se puede leer desde la URL?
Gracias de antemano!
[Si ningún ImageReader registrado afirma ser capaz de leer la secuencia resultante, se devuelve nulo.] (Http://docs.oracle.com/javase/6/docs/api/javax/imageio/ImageIO.html) –
@HunterMcMillen No, ¿puedes explicar eso un poco? – mattbdean
¿estás seguro de que 'getBaseURL()' elimina la última cadena también? De lo contrario, intenta obtener la imagen de www.google.com//favicon.ico. – 11684