如何在指定站点 URL 的 PictureBox 中显示网站的 Favicon

How to show the Favicon of a Web Site in a PictureBox specifying the Site's URL

我正在创建一个书签管理器,用户可以在其中通过指定 URL.
向站点添加书签 我想在打开站点时获取标题栏上显示的图像,例如打开 www.google.com 时的 Google 图标。

您所指的图片是网站的 Favicon (favicon.ico)。
大多数网站都直接公开此资源(在网站的根目录中)。可以通过直接请求访问和下载:

让我们创建一个目录来存储这些图标,并直接向站点询问其Favicon

Dim faviconsPath As String = Path.Combine(Application.StartupPath, "Favicons")
If Not Directory.Exists(faviconsPath) Then Directory.CreateDirectory(faviconsPath)

Dim client = New WebClient()
Dim webSiteDomain = "google.com"

client.DownloadFile("http://www.google.com/favicon.ico", Path.Combine(faviconsPath, webSiteDomain & ".ico"))
PictureBox1.Image = New Bitmap(Path.Combine(faviconsPath, webSiteDomain & ".ico"))

您还可以使用 Google 的专用服务 (http://www.google.com/s2/favicons) 并请求 Favicon,指定网站的域。请注意,它实际上会给你一个 PNG 图像:
(使用之前定义的相同存储路径)

Dim client = New WebClient()
Dim webSiteDomain = "whosebug.com"
Dim googleService = New Uri("http://www.google.com/s2/favicons?domain=" & webSiteDomain)
client.DownloadFile(googleService, Path.Combine(faviconsPath, webSiteDomain & ".ico"))

PictureBox1.Image = New Bitmap(Path.Combine(faviconsPath, webSiteDomain & ".ico"))

如果可用,请使用内插字符串。例如:

PictureBox1.Image = New Bitmap(Path.Combine(faviconsPath, $"{webSiteDomain}.ico"))