当前位置: 首页 > 知识库问答 >
问题:

如何获取favicon。从使用Java的网站下载ico?

明正德
2023-03-14

所以我做了一个应用程序来存储所有用户喜欢的应用程序的快捷方式,有点像一个集线器。我可以支持实际的文件,我有一个<代码>。快捷方式的lnk解析器。我认为应用程序支持互联网快捷方式也是非常好的。这就是我正在做的:

假设我试图获取Google的图标(< code > http://www . Google . com/favicon . ico )。

> < li>

我首先去掉多余的页面(例如< code > www . Google . com/another page 将变成< code>www.google.com)。

然后,我使用 ImageIO.read(java.net.URL) 来获取图像。

问题是ImageIO在我调用此方法时从不返回Image:

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;

现在我有两个问题:

  1. Java是否支持ICO格式,即使它来自微软?
  2. 为什么ImageIO无法从URL读取?

提前谢谢你!

共有3个答案

令狐珂
2023-03-14

你不需要ImageIO。只需复制字节,与任何其他静态资源相同。

易骁
2023-03-14

旧帖子,但供将来参考:

我为ImageIO编写了一个插件,它增加了对. ICO(MS Windows图标)和. CUR(MS Windows光标)格式的支持。

你可以在这里从GitHub获取:https://github.com/haraldk/TwelveMonkeys/

安装插件后,您应该能够阅读图标,使用原始帖子中的代码而无需任何修改。

郗福
2023-03-14

试试Image4J。

正如这个快速的Scala REPL会话所示(可粘贴为Java代码):

> net.sf.image4j.codec.ico.ICODecoder.read(new java.net.URL("http://www.google.com/favicon.ico").openStream())

res1: java.util.List[java.awt.image.BufferedImage] = [BufferedImage@65712a80: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 16 height = 16 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0]

更新

回答你的问题:Java支持ICO吗?看起来不像:

> javax.imageio.ImageIO.read(new java.net.URL("http://www.google.com/favicon.ico"))

java.lang.IllegalArgumentException: Empty region!

为什么 ImageIO 无法从 URL 读取?好吧,URL本身似乎对我有用,因此您可能遇到代理/防火墙问题,或者可能是上述问题。

 类似资料:
  • 问题内容: 因此,我正在开发一个应用程序来存储所有用户喜欢的应用程序的快捷方式,就像集线器一样。我可以支持实际文件,并且可以使用快捷方式解析器。我认为应用程序也支持Internet快捷键也将非常不错。这就是我在做什么: 假设我要获取Google的图标()。 首先,我摆脱掉多余的页面(例如将成为)。 然后,我用来获取图像。 问题是,当我调用此方法时,永远不会返回Image: 现在我有两个问题: Ja

  • 问题内容: 我想使用Java来获取网站的源(安全),然后解析该网站以获取其中的链接。我已经找到了如何连接到该URL的方法,但是然后我如何才能轻松地仅获取源代码,更喜欢作为DOM Document oso来获取我想要的信息。 还是有更好的方法连接到https站点,获取源代码(我很容易做到以获取数据表…非常简单),然后这些链接就是我要下载的文件。 我希望它是FTP,但是这些是存储在我的Tivo中的文件

  • 如何使用JSOUP从html字符串获取图标路径? 我找到了在网页上添加favicon的不同方法- (在谷歌) 我能得到的第一个方法是使用doc。选择(“html头元”) 但我无法选择链接标签

  • 尝试使用Jsoup而不是网站API从网站上练习和获取信息。我的代码没有错误,但文本字段没有更改。它只是给我一个空白。我如何从网站上获取信息?我正试图获取主要新闻,以便在我的网站上发布。 我的代码:

  • 问题内容: 我想使用HTTP GET和POST命令从网站检索URL并解析HTML。我该怎么做呢? 问题答案: 您可以将HttpURLConnection与URL结合使用。

  • 我使用jSoup解析所有的超文本标记语言从这个网站:新闻 我可以获取所有的倾斜,描述与选择一些我需要的元素。但找不到要选择的视频URL元素。我怎么能得到视频链接与jSoup或另一种库。谢谢!