Windows 图标 (.ico)

Microsoft 标准

Windows 图标资源(ICO)是微软的多分辨率图标容器格式,在全球广泛使用,也是网站浏览器标签中标准“favicon.ico”的格式。

将 ICO 转换为 PNG

免费的浏览器端 ICO 转 PNG 转换器。在您的设备上即时转换文件。

检查与元数据

操作系统和文件分析器通过检查开头的二进制字节序列来识别 ICO 文件:

选择或将文件拖放到此处

隐私保护 - 文件不会离开您的设备

或粘贴 Ctrl+V
零网络传输隐私保证: 上传至外部服务器的数据为 0 字节。所有处理均在您的浏览器沙箱中本地完成。

字节级文件头签名 (魔数)

操作系统和文件分析器通过检查开头的二进制字节序列来识别 ICO 文件:

十六进制签名 (偏移量 0):

00 00 01 00

ASCII 表示形式: ....

标准化: Microsoft Windows Icon Resource Specification

技术规格

容器架构6 字节 ICONDIR 标头由 2 字节保留字段(值为 0)、2 字节类型字段(图标为 1)和 2 字节图像数量字段组成;前 4 个字节是固定签名,后接 16 字节的 ICONDIRENTRY 记录以及 DIB 或 PNG 图像数据。
压缩方式未压缩的 DIB,或采用 PNG 压缩的数据流(用于 256x256 图标)
字节序小端序(Intel x86)
色彩空间设备 RGB, sRGB
通道与结构1 位单色、4 位 / 8 位调色板、24 位 RGB,或带 Alpha 通道的 32 位 RGBA
最大尺寸256 x 256 像素(支持 16x16、32x32、48x48、64x64、128x128 和 256x256 等多种分辨率)
透明度XOR/AND 二值透明遮罩,或完整的 8 位平滑 Alpha 通道
流式传输与渐进式加载图标目录容器不支持流式读取

技术对比矩阵:ICO 对比同类产品

技术属性ICO (当前)PNGSVGCUR
多分辨率存储一个文件中嵌入多种尺寸仅单张图像尺寸无限矢量缩放多种光标尺寸
Favicon 支持许多浏览器支持此格式,但具体行为因版本而异。现代浏览器支持现代浏览器支持无(仅限鼠标光标)
资源类型 ID0x0001(图标)标准图像文件W3C XML 矢量图0x0002(带热点的光标)
最大尺寸256 x 256 像素实际上不受限制无限(矢量)256 x 256 像素

常见损坏模式与十六进制恢复指南

浏览器标签页显示空白的默认文档页,而非自定义网站图标。

根本原因: 网站图标缺少标准的 16x16 或 32x32 分辨率条目,或包含损坏的 DIB 标头。

恢复方法: 使用 File2File.app Favicon Generator 重新生成多分辨率 ICO 文件。

安全分析与解析器攻击向量

ICO 文件包含指定数据偏移的目录表;必须校验这些偏移,以防缓冲区溢出漏洞。

已知攻击向量

  • 图像目录计数发生整数溢出,导致内存分配过小,进而造成堆缓冲区溢出。
  • 损坏的图像字节偏移指针会使读取超出映射的文件内存范围。
  • 256x256 图标条目中嵌入的 PNG 解压炸弹。

防御性最佳实践: 确保所有目录项偏移都严格落在 ICO 文件的物理范围内。

历史渊源与里程碑

2006Windows Vista 引入了对 ICO 格式中嵌入的 PNG 压缩 256x256 图标的支持。
1999Internet Explorer 5 引入了"favicon.ico",使 ICO 成为浏览器标签页品牌标识的通用标准。
1985Windows 1.0 发布,原生支持用于桌面快捷方式图形的 .ICO 格式。

核心优势与特点

  • 在单个文件中封装多种图像分辨率(例如 16x16、32x32、48x48、256x256),以便在所有 DPI 缩放下清晰显示。
  • 与所有曾经推出的网页浏览器和桌面操作系统保持通用的向后兼容性。
  • 在经典容器内支持现代的 256x256 高分辨率 PNG 压缩。

技术局限与劣势

  • 现代网页浏览器更喜欢标准的 SVG 和 PNG 网站图标,而不是传统的多资源 ICO 容器。
  • 旧软件中的传统 1 位 XOR 透明度蒙版会产生锯齿状、像素化的边缘。
  • 固定的分辨率限制(每个图标帧最大 256x256 像素)。

趣味技术冷知识

  • 在早期 Windows 版本中,图标限制为 16 色的 32x32 像素。
  • 当 Internet Explorer 5 引入网站图标时,网站通过统计服务器日志中对"/favicon.ico"的请求,就能知道有多少人将他们的页面加入了书签。
  • ICO 文件中的 256x256 图标条目实际上包含一个以 8 字节 PNG 签名开头的完整、有效的 PNG 文件。

常见技术问题

为什么我的网站需要一个 favicon.ico?

即使 HTML 指定了 PNG 网站图标,浏览器和搜索引擎爬虫默认仍会请求“/favicon.ico”,以显示标签页和书签图标。

ICO 文件中应该包含哪些分辨率?

专业的 ICO 文件应包含 16x16、32x32、48x48 和 256x256 像素版本,以便在所有显示器缩放比例下和任务栏中都清晰锐利。

如何将 PNG 转换为 ICO 文件?

将您的 PNG 图像上传到 File2File.app,即可直接在网页浏览器中即时生成优化的多分辨率 ICO 文件。