工具介绍
favicon.ico 不只是一张小图——它是一种容器格式,可以在一个文件里塞进同一图标的多个尺寸,让浏览器、任务栏或书签栏根据显示位置自己挑最清晰的那份。把 PNG 直接改名成 favicon.ico 做不到这一点:那本质上还是一张 PNG,只是扩展名换了,虽然不少浏览器能容忍,但很多工具、爬虫和老浏览器读取原始字节时会按真正的 ICO 容器结构解析,遇到假的就出错或退回空白图标。
这个工具生成的是真正的 ICO 容器:把你的 SVG 分别渲染成 16×16、32×32、48×48,各自内部编码成 PNG,再按现代浏览器和操作系统自 Windows Vista 起统一支持的"ICO 内嵌 PNG"格式,把三份数据打包进同一个合法的 favicon.ico。除此之外还会单独生成 180×180(iOS 用户把网站添加到主屏幕时用的图标尺寸)以及 192×192 / 512×512(Android 和 PWA 安装提示从你的 web app manifest 里取用的尺寸)的 PNG 文件。
为什么使用它?
- 生成真正合法的多分辨率 favicon.ico,不是改扩展名的假货。
- 一次覆盖真实部署需要的全部图标尺寸:16、32、180、192、512px。
- 可直接粘贴的 <head> HTML 代码,不用自己猜 rel/sizes/type 该怎么写。
- 非正方形 SVG 会居中放在透明正方形里,而不是被拉伸变形。
- 全程浏览器本地渲染,SVG 不会被上传。
使用方法
- 点击上传框或把 SVG logo 文件拖进去。
- 工具自动渲染所有 favicon 尺寸,不需要配置任何参数。
- 下载放到网站根目录的 favicon.ico,以及各个单独的 PNG 图标。
- 复制 HTML 代码段,粘贴进页面的 <head> 中。
示例
输入
logo.svg — 3 KB 的公司标志矢量文件输出
favicon.ico(合并了16/32/48px),加上 favicon-16.png、favicon-32.png、apple-touch-icon.png(180px)、icon-192.png、icon-512.png一个 SVG 进去,真实部署需要的全部图标文件出来。
各图标尺寸分别用在哪里
| 文件 | 尺寸 | 用途 |
|---|---|---|
| favicon.ico | 16/32/48px(合并) | 浏览器标签页、书签栏、任务栏 |
| favicon-16.png / favicon-32.png | 16×16 / 32×32 | 偏好 PNG favicon 的浏览器的备用图标 |
| apple-touch-icon.png | 180×180 | 网站被添加到主屏幕时的 iOS 图标 |
| icon-192.png | 192×192 | Android 主屏幕图标、web app manifest |
| icon-512.png | 512×512 | PWA 安装提示、Android 启动屏图标 |
为什么源文件必须是 SVG
因为 SVG 存的是数学描述的图形而不是像素,无论渲染成 16px 还是 512px,都是从同一份精确路径数据重新计算出来的——大尺寸端不会有放大失真,小尺寸端也不需要靠像素对齐的猜测来将就。如果你手头只有 PNG logo,这个工具帮不上忙;得先把 logo 转成或重新做成 SVG,因为把一张小 PNG 硬放大到 512px 只会得到模糊的结果。
→ SVG 转换器
常见问题
为什么不能直接把 PNG 改名成 favicon.ico?
.ico 文件有自己的二进制容器格式(一个记录图标数量的 ICONDIR 头,后面跟着每张图片各自的目录项)——把 PNG 改名成 .ico,里面依然是一张 PNG,只是扩展名换了。多数现代浏览器足够宽容,照样能渲染,但这个工具生成的是真正装着三种分辨率的 ICO 容器,这才是该格式本来的设计用途,也是更严格的读取方对它的预期。
已经有 favicon.ico 了,为什么还需要 PNG 图标?
favicon.ico 只覆盖经典的浏览器标签页/书签栏场景。180×180 的 PNG 是用户把网站添加到 iOS 主屏幕时用的图标(apple-touch-icon);192×192 / 512×512 的 PNG 则是 Android 和 PWA 安装提示从 web app manifest 里读取的尺寸。没有这些文件,手机主屏幕上的图标就会退回成通用截图或空白方块。
我的 logo 不是正方形,会怎么处理?
会在每个目标尺寸下居中放进透明正方形,而不是被拉伸——所以宽扁或竖长的 logo 会保持正确比例,不会被压变形。
下载的文件应该放在哪里?
把 favicon.ico、apple-touch-icon.png、icon-192.png、icon-512.png 放进网站根目录(和 index.html 同级),再把生成的 <link> 标签粘进页面的 <head> 里。
我的 SVG 会被上传到哪里吗?
不会。SVG 会被渲染到本地的 <canvas> 上,ICO/PNG 文件也在浏览器里拼装完成,没有任何数据发送到服务器。