ICO 格式从互联网早期就是标准的 Favicon 格式。虽然现代浏览器支持 PNG Favicon,但 ICO 仍然是最大兼容性的保障。以下是使用不同方法将 PNG 转换为 ICO 的教程。
为什么 2026 年 ICO 仍然重要
- 全浏览器支持 — ICO 在所有浏览器中都能工作,包括非常老的 IE 版本。
- 多尺寸容器 — 一个 ICO 文件可以包含多种图片尺寸(16×16、32×32、48×48),浏览器自动选择最佳的。
- Windows 集成 — Windows 桌面快捷方式和任务栏固定使用 ICO 格式。
- 自动回退 — 浏览器默认在每个网站的根目录查找
/favicon.ico。
方法一:在线工具(最简单)
最简单的方法是使用 Mzu favicondl 的图片转 Favicon 工具:
- 进入工具页面。
- 上传你的 PNG 图片。
- 工具生成所有 Favicon 尺寸(ICO、16×16、32×32、180×180、192×192、512×512)。
- 下载完整的 ZIP 包。
额外福利:ZIP 包还包含 HTML 代码片段和 site.webmanifest 文件 — 添加 Favicon 到网站所需的一切。
方法二:使用 ImageMagick 命令行
对于喜欢终端的开发者,ImageMagick 是黄金标准:
# 安装 ImageMagick
# macOS: brew install imagemagick
# Ubuntu: sudo apt install imagemagick
# Windows: choco install imagemagick
# 转换 PNG 为 ICO(单尺寸)
magick convert input.png -resize 32x32 favicon.ico
# 创建多尺寸 ICO(推荐)
magick convert input.png -define icon:auto-resize=16,32,48 favicon.ico
多尺寸方式最好 — 浏览器会自动选择最合适的尺寸。
方法三:使用 FFmpeg
如果你已经安装了 FFmpeg:
ffmpeg -i input.png -vf scale=32:32 favicon.ico
方法四:Python 脚本
使用 Pillow 库:
from PIL import Image
img = Image.open('input.png')
img.save('favicon.ico', format='ICO',
sizes=[(16, 16), (32, 32), (48, 48)])
PNG vs ICO:何时使用哪种
| 特性 | PNG | ICO |
|---|---|---|
| 现代浏览器支持 | 全部 | 全部 |
| 旧版浏览器支持 | IE 11+ | 所有 IE 版本 |
| 单文件多尺寸 | 不支持 | 支持 |
| 透明度 | 支持 | 支持 |
| 文件大小 | 每个尺寸更小 | 较大(多尺寸) |
| Windows 快捷方式 | 不支持 | 支持 |
| 浏览器自动检测 | 仅在 HTML 声明时 | /favicon.ico 自动检测 |
最佳实践:两者都用
推荐的做法是同时提供两种格式:
<!-- ICO 作为兜底 -->
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<!-- PNG 用于现代浏览器(更清晰的渲染) -->
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
获得最佳效果的技巧
- 从正方形图片开始 — 非正方形图片会被拉伸或裁剪。
- 输入图片至少 512×512 — 缩小比放大效果好得多。
- 保持简洁 — 在 16px 时细节会消失。粗体形状和高对比度效果最好。
- 使用透明背景 — 实色背景在现代浏览器标签页中显得过时。
- 在实际尺寸下测试 — 将图标缩小到 16×16 像素检查可读性。