c# - 我怎样才能得到一个网站的图标?

标签 c# .net-4.0 favicon

足够简单的问题:我创建了一个小应用程序,它基本上只是我系统托盘中的一个收藏夹,这样我就可以从同一个地方打开常用的网站/文件夹/文件。从我的系统获取已知文件类型的默认图标并不是非常复杂,但我不知道如何从网站获取图标。 (例如,地址栏中有灰色->橙色堆栈图标)

有人知道我该怎么做吗?

最佳答案

您需要通过几种方式解决此问题:

  1. 寻找 favicon.ico在域的根

    www.domain.com/favicon.ico

  2. 寻找 <link>标记为 rel="shortcut icon"属性

    <link rel="shortcut icon" href="/favicon.ico" />

  3. 寻找 <link>标记为 rel="icon"属性

    <link rel="icon" href="/favicon.png" />

后两者通常会产生更高质量的图像。


只是为了涵盖所有基础,有一些特定于设备的图标文件可能会产生更高质量的图像,因为这些设备上的图标通常比浏览器需要的要大:

<link rel="apple-touch-icon" href="images/touch.png" />

<link rel="apple-touch-icon-precomposed" href="images/touch.png" />


要下载图标而不关心图标是什么,您可以使用类似 http://www.google.com/s2/favicons 的实用程序这将完成所有繁重的工作:

var client = new System.Net.WebClient();

client.DownloadFile(
    @"http://www.google.com/s2/favicons?domain=stackoverflow.com",
    "stackoverflow.com.ico");

关于c# - 我怎样才能得到一个网站的图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119041/

相关文章:

c# - SQL Server 通信协议(protocol)问题

c# - .NET 中的常量与 String.Format

c# - 从 JSON 反序列化对象的混合列表

c# - 生成两个不同的随机数 C#

c# - .net 中的异步方法 (!) 说明?

c# - 是否可以有一个 out ParameterExpression?

tomcat - favicon.ico 用于使用 Tomcat 的类似 REST 的 Web 服务

google-chrome - 谷歌浏览器使用了错误大小的网站图标

html - 如何创建多个 fa-icon

c# - 为什么除非我将子 CA 证书放入受信任的根证书颁发机构,否则我的证书无效?