恢复 ICO 的全部存储变体
不缩放地恢复 ICO 全部原始条目,保留同尺寸不同色深的变体,并核对准确 payload、alpha 政策与完整散列。
先恢复已有设计,再生成新尺寸
Sarah 要求将 favicon ICO 的每个已有尺寸分别输出 PNG;Jared 说明较小图标可能是不同设计;Valer 遇到同尺寸不同色深导致读取器选择了不需要的版本。恢复全部原始条目可提供这些选择,不静默只留最大图。
在 T327 选择一份 ICO。工具保留目录顺序及全部支持条目,包括准确或部分 payload 别名;不生成新尺寸、不减少颜色、不转换文件夹、不评判画质。
下载每个变体及其出处
下载 ico-variants.zip。索引名称区分同尺寸条目。单层 ICO 保留准确 payload,仅为独立文件重建目录条目数及 payload 偏移。
| 文件 | 用途 | 保留边界 |
|---|---|---|
| original.ico | 保留选中原件 | 全部字节,包括间隙与尾部范围 |
| entry-NNNN.ico | 打开准确原始变体 | 准确 payload、头部、palette、填充与 mask |
| entry-NNNN.png | 使用未缩放像素变体 | 原内嵌 PNG,或支持 DIB 的原始 RGBA |
| ico-inventory.json / ico-variants.csv | 比较全部条目与散列 | 完整记录及公式防护 CSV |
核对真实多尺寸及同尺寸输入
许可 Pillow 实例 favicon.ico 为 15086 字节,含 16×16、32×32、48×48 三个存储的 32 位条目;共 3584 像素、15032 payload 字节及九个 ZIP 成员。另一个受控输入含五个 16×16 条目,色深分别为 1、4、8、24、32 位,五个均独立保留。
- 选择前核对存储位数与 payload SHA。
- 完整 JSON 包含 DIB 头部、PNG 块记录和全部间隙散列。
- 后续编辑或缩放时保留原件。
准确理解 alpha 和元数据
DIB 支持限定为 40 字节 BITMAPINFOHEADER、由下向上 BI_RGB 与 1/4/8/24/32 位像素。1/4/8/24 位按 AND mask 输出透明度;32 位保留实际存储 alpha,包括全零 alpha,不推断 Windows XOR/背景合成或桌面 alpha 回退。
静态非交错 8 位 RGB/RGBA PNG 在原始样本解码前检查 CRC、含空块的连续 IDAT、zlib framing/窗口、展开大小、Adler 与滤波。原 PNG 字节不变;DIB PNG 使用受控 filter-zero 和 stored-deflate 编码,不经 Canvas 颜色转换。
DIB 头部、palette、填充与 mask 保留于准确 payload ICO,新 PNG 不复制全部 DIB 元数据。未知私有 ancillary 块原样保留、不解释。不支持公共 PNG 扩展、tRNS、APNG 和不支持 DIB/PNG profile 整份拒绝。恢复不等于匿名化或通用 Windows/PNG 兼容。
同时执行预算并恢复同一原件
一份文件不超过 20 MiB,含 1–256 条目,文件名最多 512 UTF-16 单元。每 payload 最多 2 MiB;累计最多 16 MiB、4194304 像素与 10000 PNG 块。别名重复计入。256 条目产生 515 个受控 ZIP 成员。
4 MiB 报告与 80 MiB ZIP 上限为支配保护界,不是可独立达到的输出目标。异常或超限不提供部分档案。取消丢弃未完成结果,可在新 Worker 中重跑同一原件。
生产独立回读检查全部 72 原生向量、805 ZIP 成员、368 变体与 4334387 像素。真实消息 Abort 在完成 20/256 条目后取消且无结果,同源完整 ZIP 恢复准确一致。真实浏览器验收另行裁决。
参考资料
- Valer / original ICO recovery request
2026-10-07 已读原作者完整正文及相关回答,来源不以标题或标准替代实际需求。
- Jared Armstrong / original ICO recovery request
2026-10-07 已读原作者完整正文及相关回答,来源不以标题或标准替代实际需求。
- Sarah / original ICO recovery request
2026-10-07 已读原作者完整正文及相关回答,来源不以标题或标准替代实际需求。
- W3C PNG Recommendation
已读限定 framing/CRC/zlib 规则;明确子集,不宣称通用一致性。
- Pillow ICO documentation
已读默认最大图行为;逐条原件与 PNG 使用 Pillow12.3.0 独立核对。
本分类工具使用说明
展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。
提取 ICO 全部存储变体将 ICO 每个存储条目恢复为准确 payload 的单层 ICO 与未缩放 PNG,保留同尺寸变体、色深、顺序和完整散列。
选择一份本地 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。