提取 ICO 全部存储变体
将 ICO 每个存储条目恢复为准确 payload 的单层 ICO 与未缩放 PNG,保留同尺寸变体、色深、顺序和完整散列。
- 1添加输入
- 2确认后运行
- 3获取结果
工具输入和文件在当前浏览器处理,不会上传。
开始之前
选择一份本地 ICO,按原目录顺序恢复每个条目,包括尺寸或色深相同但内容不同的图像。下载一份 ZIP,包含原件、每条目的准确 payload 单层 ICO 与未缩放 PNG,以及完整 JSON/CSV。
如何使用
- 选择一份已有 ICO 并另存原件。
- 运行后检查全部尺寸、存储色深、容器与偏移行。
- 下载 ico-variants.zip,选择所需 entry-NNNN PNG 或准确 payload ICO。
- 使用完整 JSON/CSV 核对原始 payload、alpha 政策、间隙和散列。
支持范围与限制
一份不超过 20 MiB 的 ICO,含 1–256 个条目,文件名不超过 512 个 UTF-16 单元。目录宽高为 1–256 像素,零字节表示 256。拒绝 CUR、ANI 和其他容器。
每条目 payload 不超过 2 MiB;按条目累计不超过 16 MiB、4194304 像素及 10000 个内嵌 PNG 块。共享或部分重叠 payload 仍逐条保留并重复计入预算;所有限制同时生效。
DIB 仅支持 40 字节 BITMAPINFOHEADER、由下向上 BI_RGB、单 plane 和 1/4/8/24/32 位像素。校验调色板、行填充、准确 XOR/AND 大小及目录尺寸/色深。拒绝倒置存储、RLE、bitfields 和其他头部。
1/4/8/24 位 DIB 按 AND mask 输出透明度。32 位 DIB 保留实际存储 alpha,包括全零 alpha,不推断 Windows XOR/背景合成或桌面 alpha 回退。原 AND mask 保留在准确 ICO payload 中。
内嵌 PNG 仅支持静态非交错 8 位 RGB/RGBA。检查 CRC、含空块的连续 IDAT、zlib 窗口与 framing、展开大小、Adler 及滤波后,使用 DecompressionStream 解出原始样本。原 PNG 字节不变,不经 Canvas 颜色转换。
检查限定 PLTE/gAMA/cHRM/sRGB/sBIT/pHYs/bKGD/tIME/tEXt 的 framing、顺序和值。未知私有 ancillary 块仅原样保留、不解释。其他公共扩展、indexed/grayscale/interlace PNG、tRNS 与 APNG 整份拒绝;不宣称通用 PNG 或颜色管理一致性。
ZIP 含 original.ico、全部 entry-NNNN.ico、全部 entry-NNNN.png、ico-inventory.json 和公式防护 ico-variants.csv。256 条目产生 515 个受控成员。4 MiB 报告与 80 MiB ZIP 上限为支配保护界,不承诺可孤立达到输出上限。
原头部、palette、填充和 mask 保留在单层 ICO。由 DIB 生成的 PNG 只携带原始像素,不复制全部 DIB 元数据。间隙和尾部字节保留于原件,报告记录偏移/长度/SHA。此工具不匿名化,也不评判最佳画质。
仅浏览器本地处理,不上传、不抓远程 URL、不执行用户元数据、不使用云服务。任一条目异常或不支持时整份拒绝,不提供部分 ZIP。
操作示例
示例输入
一份 15086 字节的 Pillow ICO 实例,文件名 favicon.ico。
示例参数
无参数。
示例输出
3 个存储的 32 位变体,尺寸 16×16、32×32、48×48;3584 像素、15032 payload 字节和 9 个完整 ZIP 成员。
出现问题时
结构错误、不支持的 profile 或预算超限不会生成下载。修正原文件或选择支持范围内的有界原件后重试。取消会丢弃未完成产物;可在新 Worker 中重新运行同一选中文件。
常见问题
提取全部条目是否会自动选出最高画质?
不会。不同尺寸和色深可能包含不同设计。工具保留每个条目并报告存储色深,不缩放、不推断画质、不静默只留最大图。
导出 PNG 是否保留全部图标元数据?
内嵌 PNG 字节准确保留。由 DIB 生成的 PNG 保留原始 RGBA 样本,而原 DIB 头部、palette、填充与 mask 保留于准确 payload 单层 ICO 和完整报告。不宣称匿名化或 Windows 合成。