.ico 仍是网站根目录中常用的图标格式,而多数在线转换器会要求把图片上传到服务器。本指南介绍如何从 PNG 生成正确的多尺寸 favicon.ico,全程无需上传。

.ico 并不是简单改名后的图片
将 logo.png 改名为 favicon.ico 并不够。ICO 是具有独立文件头的容器格式,文件头描述容器内图片的数量、尺寸,以及各张图片在文件中的起始位置。改名后的 PNG 没有这样的文件头,检查较严格的浏览器会拒绝显示。
正确的 ICO 会包含同一图标的多个分辨率。浏览器读取文件头,选择最接近所需尺寸的版本,从而避免放大。
三步将 PNG 转换为 ICO
第一步,准备源文件。至少 512×512 像素的正方形 PNG 效果最好,因为所有尺寸都可以通过缩小生成。如果图片背景透明,请先决定是否保留:透明背景适合标签页,但 iOS 和 Android 会将其替换为黑色。
第二步,生成各个分辨率。文件至少应包含 16×16、32×32 和 48×48。调整尺寸时必须使用高质量重采样滤镜,否则小尺寸图标会难以辨认。
第三步,打包。将三张图片组合成一个 ICO 容器,由文件头描述各个条目。生成的文件命名为 favicon.ico,放在网站根目录中,即使没有 HTML 标签,浏览器也能找到它。
为什么本地转换很重要
大多数 PNG 转 ICO 工具会先把文件上传到服务器,再由服务器处理并返回结果。你的标志可能尚未公开发布,就已经存放在不受你控制的设备上,并受你未曾阅读的数据保留政策约束。
但现代浏览器可以独立完成全部步骤:解码 PNG、在画布上调整尺寸、重新编码各个尺寸,并组装 ICO 容器。LFFavicon 正是这样做的。图片不会通过任何请求传出,关闭标签页即可清除所有内容。
好处不止于隐私:转换即时完成,页面加载后可以离线使用,无需排队,也没有每日次数限制。
仅有 .ico 已经不够
将 PNG 转为 ICO 可以满足标签页和旧客户端,但仍有三类场景未覆盖:偏好任意尺寸都清晰的 SVG 的现代浏览器、需要不透明 180×180 PNG 的 iOS 主屏幕,以及读取网页应用清单的 Android。
既然要处理图片,不如一次生成完整组合。生成器正是如此:从同一源图片生成 .ico、SVG、Apple Touch 图标和清单图标,下载前还可以预览各个场景。
一手资料
常见问题
创建 ICO 需要多大的 PNG?
至少 512×512 像素的正方形图片。低于 128×128 时,图标包中的较大尺寸只能通过放大生成,效果会模糊。SVG 更好,因为它没有分辨率限制。
.ico 会保留透明度吗?
会。ICO 格式支持完整的 Alpha 通道,透明 PNG 在标签页中仍会保持透明。但要注意 iOS 图标:系统会将透明区域填充为黑色,因此请为它添加背景。
favicon.ico 文件应该放在哪里?
放在域名根目录,使其可以通过 https://yoursite.com/favicon.ico 访问。即使没有 link 标签声明,浏览器和抓取程序也会按惯例请求这个地址。