ICO 转 PNG 转换器
在浏览器中立即将 Windows 图标 (.ico) 文件转换为高质量的透明 PNG 图像。
点击或拖拽 ICO 文件到此处
最大支持 50MB
在浏览器中立即将 Windows 图标 (.ico) 文件转换为高质量的透明 PNG 图像。
最大支持 50MB
ICO 是 1990 年为 Windows 3.0 发明的图标文件格式,至今仍在网络上作为事实上的 favicon 格式使用。尽管有这个名字,ICO 文件是一个可以容纳多个不同大小和颜色深度的图像的容器。典型的 Windows 桌面 ICO 可能会捆绑同一图标的 16×16、32×32、48×48、64×64、128×128 和 256×256 版本;操作系统选择与显示上下文匹配的大小。将 ICO 转换为 PNG 意味着提取一个或多个嵌入图像并将它们保存为独立的 PNG 文件。
该转换器解析浏览器中的 ICO 标头,识别所有嵌入的图像条目,并对每个条目进行解码。大多数现代 ICO 文件在内部将其图像存储为 PNG;较旧的使用 BMP 样式的原始位图数据。两种编码都被处理。每个嵌入图像的输出是一个 PNG — 对于典型的 Windows 图标,这意味着六个或更多不同大小的 PNG 文件。
文件永远不会离开您的设备。解析在 JavaScript 中进行,使用 DataView 读取 ICO 目录并将每个图像分派到适当的解码器。输出 PNG 是通过 canvas.toBlob('image/png') 生成的。
ICO 是一种以 Windows 为中心的格式,很少有图像编辑器可以很好地处理它。 Photoshop 需要插件;许多基于网络的工具根本无法读取ICO; Linux 桌面环境将 ICO 视为二等。 PNG 得到普遍支持。将现有 ICO 转换为 PNG 会生成可以在任何工具中打开和编辑的文件。
另一个常见原因是提取个体尺寸。更新网站图标的 Web 开发人员通常只需要现有 ICO 的 32×32 或 64×64 版本。重新绘制旧图标的设计师希望以最大的嵌入版本作为起点。这两种工作流程都受益于提取单独的 PNG 文件(每种大小一个),而不是直接处理 ICO 容器。
放弃 ICO,为每个嵌入尺寸获取一个 PNG。
ICO 文件以 6 字节标头 (ICONDIR) 开头,后跟条目目录(ICONDIRENTRY,每个 16 字节),最后是每个条目的图像数据。每个目录条目指定宽度、高度、颜色计数以及指向图像字节的偏移量和大小。
图像数据被编码为 BMP 样式的 DIB(不带 BITMAPFILEHEADER)或直接嵌入的完整 PNG 文件。 PNG 编码的条目对于 256×256 的现代图标很常见,并且在开头有一个标准的 PNG 签名。 BMP 样式条目省略文件头,但包括信息头和像素数据。
This converter reads the directory, locates each entry, and dispatches to the appropriate decoder. PNG entries are decoded using a Blob and an Image element; BMP entries are read by parsing the BITMAPINFOHEADER and writing pixels into a canvas manually.输出始终为 PNG。