Favicon 生成器

从 emoji、文字、图片或 SVG 一键生成完整网站图标包,包含 ICO、多尺寸 PNG、apple-touch-icon 和 webmanifest。在浏览器中处理,零上传。

  • 在浏览器中处理
  • 数据不离开你的设备
  • 免费 · 无需注册
按当前素材渲染九种 PNG 尺寸,打包成 11 个文件,含三尺寸 ICO 和 webmanifest。编辑素材或设置后需重新生成图标包。
复制已完成图标包的七行 HTML 代码片段,不向剪贴板复制图片文件。 将全部 11 个文件下载为 favicon-package.zip。请放到 HTML 代码片段引用的站点根目录。
素材类型 选择 Emoji、文字、图片或 SVG。编辑会更新实时画布,并使已生成的图标包失效。
Emoji 预设
外观与 manifest
背景 透明不填充画布背景;颜色使用选中的颜色填充。透明画布的 manifest 背景色仍为白色。
形状 方形使用完整画布;圆角半径为尺寸的 12.5%;圆形会裁切到圆内。

manifest 有名称时,Chrome 才会提示把网站安装为应用。只需要 favicon 可以留空。

实时预览 16 / 32 / 64 / 180 px
16 px
32 px
64 px
180 px
阅读完整使用指南 Favicon 生成器:在浏览器里造好整套现代图标包
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。

为什么仍然需要一整套 favicon

网站图标早已不只是浏览器标签上的小图。它出现在搜索结果中域名旁边、收藏夹里、iOS 用户把网站添加到主屏幕时的图标位、Android 的 PWA 安装卡片上。每个场景需要的尺寸不同,少数场景还要求略不同的格式。只放一个 favicon.ico 在视网膜屏和可安装 PWA 上会留下肉眼可见的毛刺。

本工具一键产出整套现代图标:兼容旧浏览器的 ICO、对应现代 <link rel=“icon”> 栈的多尺寸 PNG、iOS 用的 apple-touch-icon,以及写明站点名称、start_url、display 与 192、512 图标的 webmanifest,这些正是 Chrome 提示安装网站前检查的字段。

HTML 片段说明

生成的代码片段约 7 行,覆盖每个现代场景:

  • <link rel=“icon” type=“image/x-icon” href=“/favicon.ico”> — 老浏览器和仍优先解析 favicon.ico 的收藏夹的兜底。
  • <link rel=“icon” type=“image/png” sizes=”…”> 16/32/48 三档 — HTML 标准把选择权交给浏览器。2026-10-02 实测,2× 屏上的 Chromium 152 在有 ICO 链接时只请求 favicon.ico,只有 PNG 链接时请求 favicon-32.png。
  • <link rel=“apple-touch-icon”> 180×180 — iOS Safari 在「添加到主屏幕」时使用。
  • <link rel=“manifest”> — Android Chrome 和 PWA 安装器读取 site.webmanifest,里面写着「站点名称」栏的名称、“start_url”: ”/”、“display”: “standalone”,并用 purpose: “any” 声明 192 与 512 PNG。「站点名称」留空时不写 name 与 short_name,Chrome 不会提示安装网站。
  • <meta name=“theme-color”> — 控制移动端浏览器地址栏与已安装 PWA 标题栏的颜色。

图标包是怎么生成的

渲染器对每个目标尺寸单独建立 canvas,应用所选的背景与形状蒙版,按 padding 偏移把素材居中绘制,再调用 canvas.toBlob(‘image/png’) 取得紧凑的 PNG 数据。16/32/48 三个 PNG 通过 PNG 压缩条目格式打包成单一 favicon.ico——三段 PNG 数据接在 ICONDIR 头和三条 16 字节 ICONDIRENTRY 之后。

ZIP 写入器使用 STORED 方法(不做 DEFLATE):PNG 本身已经是压缩格式,再做 DEFLATE 收益不足 1%,却要多带 5 KB 代码。文件名在通用位标志中标记 UTF-8,确保未来你给文件改名时非 ASCII 名称也不会乱码。

隐私与离线

  • 页面从不上传你的文件。打开浏览器网络面板观察——点击 Generate 时不会发出任何请求。
  • 页面缓存后可离线工作。Canvas API、ZIP 与 ICO 写入器全部内联在页面包里。
  • 只统计使用量。与其他工具页一样,本页加载 Google Analytics;工具只记录一次 generate 和一次 download 事件,事件只含工具名和操作,不含你的图片。

常见坑

  • SVG 含外链图片。 当 SVG 引用 <image href=“https://…”> 时浏览器拒绝把 canvas 读回为 blob(跨域污染)。粘贴前先把外链图片转成 Data URI 内联。
  • Linux 工作机上 emoji 显示空框。 某些 IT 管控的 Linux 发行版未预装彩色 emoji 字体。预览会显示空框,切到 Text 或 Image 标签即可绕过。
  • 16 px 上的细节会消失。 线宽小于 1.5 px 在 16×16 上会消失。如果 32 上清晰、16 上没了,把设计简化或用背景色提供分割。

FAQ

生成的图标包里都有什么?

共 11 个文件:favicon.ico(包含 16/32/48 三个尺寸,PNG 压缩格式),六个独立 PNG(16/32/48/64/96/128),180×180 的 apple-touch-icon.png,192 和 512 两个 android-chrome PNG,以及 site.webmanifest。把它们放到站点根目录,将 HTML 片段粘贴到 <head>,浏览器、iOS、Android、PWA 安装场景就全覆盖了。

我的文件会被上传到服务器吗?

不会。所有操作都在浏览器中通过 Canvas API 完成——图像解码、多尺寸重采样、ICO 与 ZIP 打包,全部由 JavaScript 在本地执行。打开开发者工具的 Network 面板,点击 Generate 时你看不到任何上传请求。

为什么我的 emoji 在 Windows 和 macOS 上看起来不一样?

每个操作系统自带一套彩色 emoji 字体(macOS 的 Apple Color Emoji、Windows 的 Segoe UI Emoji、Linux/Android 的 Noto Color Emoji)。生成器使用的是你当前机器的系统字体。若需要跨平台像素级一致的输出,请切换到 Image 或 SVG 标签,提供自己的位图或矢量 logo。

ICO 用的是 PNG 还是 BMP 条目?

使用 PNG 压缩条目。每个 ICO 帧是独立 PNG,IE 11 之后所有浏览器都支持,Windows Vista 以后的资源管理器也能识别。这样做能保留 alpha 通道、文件更小,并避免老式 DIB/BMP 编码。仅支持 DIB 帧的老系统按设计不在范围内。

可以生成 maskable PWA 图标吗?

不能。manifest 把 192 和 512 PNG 以 `purpose: "any"` 声明,图标包不含 maskable 图标,因为 web.dev 不建议一个文件写成 `"any maskable"`:为裁切留了边距的图标直接显示时会显得偏小。要单独提供 maskable 图标,用 Padding 滑块让主体落在中心圆(半径为宽度的 40%)内,再生成一张 512 px PNG,以 `purpose: "maskable"` 加入 manifest。