Windows 图标 (.ico)
Microsoft 标准Windows Icon 资源文件(ICO)是微软的多分辨率图标容器格式,被全球网络广泛采用作为网站浏览器标签的标准"favicon.ico"格式。
将 ICO 转换为 PNG
免费的浏览器端 ICO 转 PNG 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 ICO 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 ICO 文件:
十六进制签名 (偏移量 0):
00 00 01 00ASCII 表示形式: ....
标准化: Microsoft Windows Icon Resource Specification
技术规格
| 容器架构 | ICONDIR header with resource type 1 (Icon) followed by ICONDIRENTRY array and DIB/PNG streams |
| 压缩方式 | Uncompressed DIB or PNG compressed streams (for 256x256 icons) |
| 字节序 | Little-Endian (Intel x86) |
| 色彩空间 | Device RGB, sRGB |
| 通道与结构 | 1-bit monochrome, 4-bit / 8-bit paletted, 24-bit RGB, or 32-bit RGBA with alpha |
| 最大尺寸 | 256 x 256 pixels (supports multi-resolution suites: 16x16, 32x32, 48x48, 64x64, 128x128, 256x256) |
| 透明度 | XOR/AND binary transparency mask or full 8-bit smooth alpha channel |
| 流式传输与渐进式加载 | Non-streamable icon directory container |
技术对比矩阵:ICO 对比同类产品
| 技术属性 | ICO (当前) | PNG | SVG | CUR |
|---|---|---|---|---|
| 多分辨率存储 | 一个文件中嵌入多种尺寸 | 仅单张图像尺寸 | 无限矢量缩放 | 多种光标尺寸 |
| Favicon 支持 | 在所有传统和现代浏览器中 100% 通用 | 现代浏览器支持 | 现代浏览器支持 | 无(仅限鼠标光标) |
| 资源类型 ID | 0x0001 (Icon) | 标准图像文件 | W3C XML Vector | 0x0002 (Cursor with hotspot) |
| 最大尺寸 | 256 x 256 像素 | 几乎无限制 | 无限(矢量) | 256 x 256 像素 |
常见损坏模式与十六进制恢复指南
浏览器标签页显示空白的默认文档页面,而不是自定义网站图标。
根本原因: 网站图标缺少标准的 16x16 或 32x32 分辨率条目,或者包含损坏的 DIB 头。
恢复方法: 使用 File2File Favicon 发生器重新生成多分辨率 ICO 文件。
安全分析与解析器攻击向量
ICO 文件包含指定数据偏移量的目录表,必须对这些偏移量进行验证以防止缓冲区溢出漏洞。
已知攻击向量
- 图像目录计数中的整数溢出,导致内存分配过小和堆缓冲区溢出。
- 损坏的图像字节偏移指针,导致读取操作超出映射的文件内存范围。
- 256x256 图标条目中嵌入的 PNG 解压炸弹。
防御性最佳实践:
历史渊源与里程碑
核心优势与特点
- 在单个文件中封装多种图像分辨率(例如 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 文件。