【发布时间】:2012-06-20 20:59:59
【问题描述】:
所以我正在制作一个应用程序来存储所有用户最喜欢的应用程序的快捷方式,就像一个集线器一样。我可以支持实际文件,并且我有一个用于快捷方式的.lnk 解析器。我认为该应用程序也支持 Internet 快捷方式会非常好。这就是我正在做的:
假设我正在尝试获取Google's icon (http://www.google.com/favicon.ico)。
我首先删除多余的页面(例如,
www.google.com/anotherpage将变为www.google.com。然后,我使用
ImageIO.read(java.net.URL)来获取图像。
问题是ImageIO 在我调用此方法时从不返回图像:
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;
现在我有两个问题:
- 即使它来自 Microsoft,Java 是否支持 ICO 格式?
- 为什么
ImageIO无法读取 URL?
提前谢谢你!
【问题讨论】:
-
@HunterMcMillen 不,你能解释一下吗?
-
你确定 'getBaseURL()' 也删除了最后一个字符串吗?如果没有,您正在尝试从 www.google.com//favicon.ico 获取图像。
-
@11684 是的,URL 的路径是
http://www.google.com/favicon.ico。 -
@whowantsakookie 如果没有注册的图像阅读器可以读取该格式,您将返回 null。正如博试图链接到的页面中所述。链接:docs.oracle.com/javase/6/docs/api/javax/imageio/… 出于某种原因,我在他的链接上得到了 404
标签: java image javax.imageio ico