Favicon 生成器|一键生成多尺寸 ICO 与 PNG
上传图片并裁剪为正方形,即可生成内含多个尺寸(16、32、48px 等)的 favicon.ico 与全套 PNG。支持 Lanczos 高品质缩小算法,并自动生成可直接粘贴的 HTML 代码。全程在浏览器内处理,图片不会上传至服务器。
Favicon 的指定方法(分模式)
Favicon 的写法取决于「打算支持到什么程度」。以下按用途整理了从最小配置到 PWA、深色模式适配所需的写法。所有代码均以将生成的文件放在网站根目录为前提。
模式1:最小配置(只放 favicon.ico)
不在 HTML 中写任何一行,只把 /favicon.ico 放到文档根目录即可。浏览器会隐式查找该路径,因此这样就能显示。
your-site/
└── favicon.ico ← 放在这里即可(无需在 HTML 中书写)
<!-- 若要显式声明,仅这一行就够了 -->
<link rel="icon" href="/favicon.ico" sizes="any">
| 适用场景 | 个人网站、内部工具,以及「只要能显示就行」的场合 |
|---|---|
| 补充说明 | 加上 sizes="any" 后,即使日后追加 SVG 或 PNG,浏览器也能正确判断「ICO 是最后的备选」。建议在 ICO 中内含 16、32、48px。 |
模式2:标准配置(推荐)
在 ICO 之外再准备 PNG 与 Apple Touch Icon,是目前最常见的配置。从桌面浏览器到 iOS 添加到主屏幕都能覆盖。
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
| 适用场景 | 企业官网、博客、媒体等一般 Web 站点 |
|---|---|
| 补充说明 | apple-touch-icon 的透明部分会被填充为黑色,请务必输出带背景色的不透明 PNG。iOS 侧会以圆角裁切,留出一成左右的留白可避免边缘被切掉。 |
模式3:PWA 完整配置
添加到主屏幕后能像应用一样启动的 PWA,需要在 site.webmanifest 中登记图标。若 192px 与 512px 未同时齐备,则不会被判定为可安装。
<!-- HTML(head 内) -->
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<!-- site.webmanifest -->
{
"name": "My Site",
"short_name": "Site",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
| 适用场景 | PWA、Web 应用,以及以手机使用为主的服务 |
|---|---|
| 补充说明 | iOS 不会参照 manifest 中的图标,因此仍需另行书写 apple-touch-icon。display: "standalone" 表示隐藏浏览器界面、以应用风格启动。 |
模式4:SVG Favicon + 深色模式适配
SVG favicon 与分辨率无关,并可通过 SVG 内的 CSS 切换深色模式下的颜色。为不支持的浏览器一并声明 ICO 与 PNG。
<!-- HTML(head 内)。浏览器会自上而下采用「能读懂的那个」 -->
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<!-- favicon.svg(深色模式下反转颜色的示例) -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
path { fill: #1a1a1a; }
@media (prefers-color-scheme: dark) { path { fill: #ffffff; } }
</style>
<path d="M4 4h24v24H4z"/>
</svg>
| 适用场景 | 能够准备矢量 Logo 的站点,或希望在深色模式下改变观感的场合 |
|---|---|
| 补充说明 | SVG favicon 已获 Chrome、Firefox、Edge 支持。Safari 目前不读取 rel="icon" 的 SVG,因此 PNG、ICO 的回退方案必不可少。 |
模式5:子目录放置与缓存更新
图标放在根目录以外时的写法,以及替换后仍显示旧图标时的处理。Favicon 会被浏览器牢牢缓存,改变 URL 是最可靠的办法。
<!-- 放在任意目录时需要显式写明路径 -->
<link rel="icon" href="/assets/icons/favicon.ico?v=2" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/icons/favicon-32x32.png?v=2">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/icons/apple-touch-icon.png?v=2">
<!-- 在子目录下公开的站点(例如 /docs/)请注意绝对路径 -->
<link rel="icon" href="/docs/favicon.ico" sizes="any">
| 适用场景 | CDN 分发、统一管理静态资源的站点,以及替换图标时 |
|---|---|
| 补充说明 | 唯独把 /favicon.ico 放在根目录的隐式查找无法改变路径,因此即便放在子目录,也建议在根目录留一份副本,以免遗漏。 |
文件与显示位置的对应关系
下表列出各文件分别用在何处。并非全部都要准备,可按需支持的环境自行选择。
| 文件 | 尺寸 | 使用场景 |
|---|---|---|
| favicon.ico | 16 / 32 / 48px | 浏览器标签页、书签、Windows 任务栏。即使 HTML 中无声明也会查找根目录 |
| favicon-16x16.png | 16×16 | 浏览器标签页(标准分辨率显示器) |
| favicon-32x32.png | 32×32 | 浏览器标签页(Retina 等高分辨率显示器)、书签栏 |
| apple-touch-icon.png | 180×180 | 添加到 iOS / iPadOS 主屏幕时的图标。透明部分会被填充为黑色 |
| android-chrome-192x192.png | 192×192 | Android 主屏幕图标(经由 manifest) |
| android-chrome-512x512.png | 512×512 | PWA 启动画面与应用列表(经由 manifest) |
| site.webmanifest | — | PWA 的配置文件,用于声明图标、主题色与启动方式 |
| favicon.svg | 可变 | Chrome、Firefox、Edge。可实现深色模式下的配色切换 |
什么是 Favicon 生成器
Favicon 生成器可以从一张图片一次性生成 favicon.ico 与各种尺寸的 PNG。favicon.ico 是一种特殊格式,能在单个文件中同时内含 16px、32px、48px 等多个分辨率,浏览器标签页、书签栏、任务栏等不同显示位置会各自自动选用最合适的尺寸。无需手工逐个尺寸导出,从裁剪为正方形到设置输出参数,全部操作都可以在这一个页面上完成。
图片的读取、裁剪、缩小以及转换为 ICO/PNG,全部处理都在浏览器内的 JavaScript 中完成,上传的图片不会被发送到服务器,因此即便是尚未公开的 Logo 或品牌规范中禁止外传的素材,也可以放心使用。缩小算法采用能够保留轮廓对比度的 Lanczos 法,即使缩小到 16px 这样极小的尺寸,文字与 Logo 的形状也不容易糊成一团。
Favicon 的制作步骤
- 上传图片 拖放要用作 Logo 或图标的图片,或点击选择文件。支持 PNG、JPEG、SVG、WebP、GIF、BMP 格式。
- 裁剪为正方形 拖动选框调整位置,拖动四角调整选区大小。由于 favicon 必须是正方形,选框会始终锁定为 1:1 比例。
- 设置输出选项 按需设置 favicon.ico 中要内含的尺寸、要生成的 PNG 尺寸、缩小算法以及留白与背景色等参数。
- 生成并确认预览 点击「生成 Favicon」即可一次性生成全部尺寸,还可以在实际尺寸预览中确认小尺寸图标的显示效果。
- 下载并部署 选择单独下载或打包为 ZIP 一并下载,再把生成的 HTML 代码粘贴到 标签内即可。
用好本工具的小技巧
- 建议准备 512×512px 以上的正方形原图,这样即使缩小到 16px 轮廓也不会崩坏。非正方形的图片可以用本工具的裁剪功能,只截取需要的正方形区域。
- Lanczos3 在对相邻像素加权平均的同时,利用卷积核的负瓣提升边缘对比度。相比浏览器内置的缩放能保留更多轮廓,对含有文字或 Logo 的图标差异尤为明显。
- ICO 最大的特点是可在一个文件中内含多个尺寸。只要放入 16、32、48px,标签页、书签栏、Windows 任务栏就会各自选用最合适的图像。
- Apple Touch Icon 的透明部分会被填充为黑色,因此建议指定背景色并输出为不透明的 PNG。留白设为 10% 左右,还能避免 iOS 的圆角遮罩裁掉边缘。
- 浏览器对 favicon 的缓存非常顽固。替换后若未生效,可在 URL 后附加
?v=2之类的查询参数,或执行强制刷新。
应用场景
新建网站时制作 favicon
在网站上线前一次性准备好所需的 ICO、PNG 以及 HTML 代码,避免遗漏粘贴到 head 标签中。
批量生成 PWA 图标尺寸
可以同时生成添加到主屏幕、启动画面所需的 192px、512px 等 PNG 图片,以及 site.webmanifest 配置文件。
从品牌 Logo 批量转换
读取现有的 Logo 图片,一边调整留白与背景色,一边批量导出适配各类设备的图标。
替换 CMS 或静态网站生成器的图标
在为 WordPress、Hugo 等平台管理的网站更新 favicon 时,可以完整备齐所需的各种文件格式。
品牌重塑时统一更新图标
配合 Logo 更新,一次性刷新标签页、书签、主屏幕图标,并逐一确认各显示位置的效果。
术语解释
- favicon.ico
- 浏览器会隐式地从网站根目录查找的文件名,采用可在单个文件内含多种分辨率图片的 ICO 格式保存。
- Apple Touch Icon
- iOS 中将网站添加到主屏幕时显示的图标。透明部分会被填充为黑色,因此建议指定背景色。
- Lanczos 法
- 一种使用将 sinc 函数截断为有限范围的卷积核的缩小算法,能较好地保留边缘对比度,适合缩小含有文字或 Logo 的图片。
- PWA(Progressive Web App)
- 让网站可以像应用一样添加到主屏幕、支持离线使用的技术统称,需要准备 192px、512px 图标以及 site.webmanifest 文件。
- site.webmanifest
- 定义 PWA 名称、图标、主题色等信息的配置文件,需放置在网站根目录下并由 HTML 引用。
- 最近邻法
- 直接采用最近像素颜色的缩小算法,由于不混合颜色,能够保留像素画那样锐利的轮廓。
常见问题
/favicon.ico 至今仍是浏览器在没有任何 HTML 声明时也会隐式查找的路径。RSS 阅读器、书签服务以及部分爬虫不会解析 HTML,只会直接抓取根目录下的 ICO,因此一并放置 ICO 才不会有遗漏。<link rel="icon" type="image/svg+xml"> 引用。同时写上本工具生成的 ICO 与 PNG 作为回退方案最为稳妥。
闲话 ― 在 16 像素上作画这道难题
1999 年,Internet Explorer 5 实现了在收藏夹中为书签显示小图标的功能。机制质朴得可爱:只要把 favicon.ico 放到网站根目录就会被抓取。「favicon」这个称呼正是「favorite icon」的缩写。<link rel="icon"> 正式写入 HTML 规范则是后来的事,而隐式查找根目录 ICO 的行为,至今仍作为向后兼容保留了下来。
ICO 借用 Windows 图标格式这一点,结果具有重大意义。这种格式可在单个文件中内含多种分辨率,也就意味着 16px 的标签页与 48px 的任务栏可以显示完全不同的图案。这不只是便利性的问题。在 16×16 这样极小的画布上,把为 48px 设计的图案机械缩小,细线会消失、文字会无法辨认。当年的图标设计师之所以逐个尺寸手工绘制,正因为那是唯一的解决办法。
现代的 favicon 生成则以「如何聪明地缩小」取代了手工绘制。单纯的平均(双线性)会损失边缘对比度,而抽样(最近邻)则会整根丢掉细线。Lanczos 法使用将 sinc 函数截断为有限个瓣的卷积核,主瓣保留原始信息,两侧的负瓣则把边缘顶起来。这种「略微强调轮廓」的特性,在小图标上效果尤为突出。
此后 favicon 的需求还在不断增加。2007 年 iPhone 登场带来了 Apple Touch Icon(最初 57px,如今 180px),PWA 的普及又要求 192px 与 512px,如今连 SVG favicon 与深色模式适配也进入了视野。与只放一个文件的时代相比确实繁琐,但反过来说,浏览器标签页上那几十个像素,正是被无数用户日日看见的地方。