如何创建 Windows 应用程序图标
Windows 从单个 .ico 文件请求最多七个图标大小。本指南解释了尺寸矩阵、容器内的PNG压缩、工具选择、实际包装示例、常见问题解答以及对臃肿或模糊的 Windows 图标的修复。
为什么 Windows 对图标很挑剔
Windows UI 表面从 16×16 通知区域字形缩放到高分辨率任务栏上的 256×256 巨型图钉。超出此范围的位图会显得柔和或像素化。使用我们的[favicon生成器](工具:favicon-generator)、[PNG到ICO转换器](工具:png-to-ico)、[SVG到ICO转换器](工具:svg-to-ico)和[实时favicon测试器](实用程序:favicon-test)创建并验证您的图标集,并阅读[附加指南](指南:Windows 图标大小)以获取简明演练。
.ico 容器的存在使得单个文件包含多个预渲染图像。 Shell32 选择最接近的尺寸而不是缩放小图像。
favicon Web 和桌面应用程序图标共享相同的容器格式。在 favicon.ico 的交付和 Win32 或 Electron 可执行文件的打包之间进行技能转移。
Use our favicon generator, PNG to ICO converter, SVG to ICO converter, and live favicon tester to build and verify your icon set, and read the companion guide for a condensed walkthrough.
Windows 图标大小矩阵
Microsoft 建议在现代应用程序的 .ico 中嵌入 16、24、32、48、64、128 和 256 像素的正方形。
16 和 24 涵盖了 shell 的小列表。图 32 和 48 涵盖了文件资源管理器中的标准和中等图标视图。 64 及以上覆盖高分辨率图块和“开始”菜单图块。
省略 256 并不总是会破坏任何东西,但如果没有它,4K 显示器上的固定缩略图看起来会明显更柔和。
压缩计数为 256 × 256
现有工具将 256×256 作为未压缩的 32 位 BMP 存储在 .ico 中。该单个映像可能超过 256 KB,并且会导致安装程序膨胀。
现代编码器将大图像存储为 ICO 容器内的压缩 PNG blob。视觉质量保持不变;字节大小减少 5 到 10 ×。
始终检查最终的 .ico 大小。对于 PNG 压缩的平面徽标来说,通常小于 50 KB;超过 200 KB 表明 BMP 膨胀。
正确执行此操作的工具
FetchFavicon 接受 512×512 母版并输出带有大型压缩图像的 Web 就绪 .ico PNG - 适合集成 Electron、Tauri 和经典 Win32 资源。
当您编译本机应用程序时,Visual Studio 资源编辑器会验证 ICO 结构。在发布 MSI 之前进行测试。
避免将单个 PNG 重命名为 .ico。 Windows 资源管理器可以预览,但 shell 缩放会受到影响。
包装示例
Electron应用:将favicon.ico放入构建资源中;将 electronics-builder.yml 中的 win.icon 设置为相同的多尺寸文件。
Inno Setup 安装程序:SetupIconFile=assetsapp.ico 应指向包含至少 32 和 48 个图像的 .ico。
便携式 ZIP 分发:用户将您的 .exe 固定到任务栏; Windows 从 PE 标头读取内置图标资源,这些资源是从同一个 .ico master 编译的。
Enterprise MSI:集成图标后对安装程序进行签名;修改 .ico 后签名会使签名无效。
常见问题
.ico 在网络和桌面上是否相同?集装箱规格相同;桌面应用程序将其集成为 PE 资源,而不是通过 HTTP 提供服务。
每个 Windows 版本都需要单独的图标吗?现代多尺寸 .ico 涵盖 Windows 10 和 11。
UWP 的 .ico 与 .png 怎么样? UWP 在包清单中使用 PNG 资源;经典 Win32 仍然需要 .ico。
我可以从现有的 .ico 中提取尺寸吗?是的,将 IcoFX 或 ImageMagick 转换为审核。
故障排除
任务栏上的图标模糊:缺少 32 或 48 个图像; Windows 改为扩展到 16 个。
安装图标错误但 exe 图标正确:Inno Setup IconFile 仍然指向旧路径。重建安装程序。
添加图标后的巨大 git 提交:您已提交了 BMP 样式的 .ico。使用 PNG 压缩重新导出。
该图标仅显示在开发计算机上:Release 配置中未包含资源 - 检查 .rc 文件和 CI 工件。
将图标集成到可执行文件中
Win32 本机应用程序在编译到 PE 文件中的 .rc 资源脚本中引用 .ico。资源 ID 1 是默认应用程序图标。
Electron 包从电子构建器配置中读取 win.icon ;相同的多尺寸 .ico 被提取到最终的 .exe 中。
Windows 上的 Tauri 期望 tauri.conf.json bundle.icon 表中包含 .ico 以及其他平台的 PNG 。
代码签名不会验证图标像素,但签名后更改资源会破坏签名:在 Authenticode 签名之前完成图标。
在未安装开发工具的干净虚拟机上测试编译后的 .exe。 Explorer 读取嵌入的资源,而不是源存储库的路径。
Windows Shell 如何使用每种大小
资源管理器中的小图标视图有利于 16 和 32 像素图像。如果存在超大图标,则使用 256。
任务栏固定需要中等大小的框架;缺失的 32 产生了 16 的软顶端。
当使用 256×256 时,Windows 11 上的开始菜单图块会以更高分辨率的资源进行动画处理。
桌面上的.lnk快捷方式文件可以独立缓存图标:在QA期间更新底层.ico后删除并重新创建快捷方式。
Windows 质量保证表
在 Windows 11 上测试 100% 和 200% 显示缩放。每种缩放选择相同 ICO 的不同图像。
固定到任务栏、取消固定、图标更新后重新固定,以在 QA 期间清除 shell 缓存。
检查更新之前创建的快捷方式上的属性 → 更改图标 - 它们可能引用缓存的索引。
比较资源管理器缩略图和任务栏图标:差异表示缺少中等大小的图像。
安装商品牌定位
MSI 和 EXE 图标应与您的网站favicon匹配,以确保用户在安装后固定时的品牌连续性。
卸载程序对话框使用相同的图标资源:用户会注意到安装程序和应用程序之间的不一致。
Microsoft Store 软件包的商店列表使用单独的 PNG 要求;桌面 ICO 仍然与 Win32 侧面加载相关。
在存储库中保留一个 master ICO; CI 版本将其复制到安装程序配置和公共网络以避免漂移。
Windows SmartScreen不会判断图标的美观,但用户在确认安装提示时信任相应的图标。
跨平台打包注意事项
macOS 应用程序需要单独使用 .icns; Windows ICO 不会在 Electron 的通用版本中替换它们。
Linux 桌面条目通常指 512 × 512 处的 PNG;从与 ICO 相同的 master 生成 PNG。
移动商店图标是另一组导出:Web favicon 工具是必要的,但对于应用商店来说还不够。
统一的发布管道应在单个清单中列出所有图标目标,以便 Windows ICO 永远不会被遗漏。
当图标资源更改时标记发行说明,以便支持人员可以解释更新后快捷方式不同的原因。
在签署最终安装程序二进制文件之前,使用 Resource Hacker 或同等工具验证内置 ICO 资源。
记录在 QA 屏幕截图期间选择的 ICO Windows 帧 - 在调试模糊任务栏报告时提供帮助。
将注释的 YAML 安装程序中的路径 ICO 保留在文件中,并包含预期的框架列表。