设计师丢来 favicon.ico,麻雀看图里像马赛克。资源管理器也糊。ICO 是多画幅容器,缩略图常取最小那张。
一文件多尺寸,缩略图常取最小张
favicon.ico 在窗口里像马赛克。ICO 是 ICONDIR 容器:16、32、48、256,大图还可能是 PNG 压缩。网格只出一张代表图,所以列表永远显得糊。看图模式当多画幅翻页,翻到 256×256。停在 16×16 再最大化,任何解码器都糊。
没有 256 那层的老 ICO,放大就是糊。回设计工具重出,或直接用 PNG。TIFF 多页是内容页,ICO 多页是同一图标不同分辨率,别混。
256 那层若是 PNG 压缩,有的老工具读不出。麻雀看图翻页能出就说明层在。另存 PNG 时确认像素是 256 不是 16。
一个 ICO 里常有 16、32、48、256。网格缩略图常取较小的那层,所以看起来糊。看图窗口翻到 256 那层再评。另存 PNG 时看属性像素是不是你要的那层。
不要当壁纸、不要转 JPG 当源
转 JPG 只会烤当前页,多半是小图。提取大尺寸:翻到 256 另存 PNG 副本。CUR 光标类似,热点不在看图里改。EXE 里嵌的图标不是独立 ICO,双击 exe 不会当图开。
透明在浅色主题下清楚,深色底上边缘可能脏,是预乘差异。损坏的 ICONDIRENTRY、BITMAPINFOHEADER 写错,会打不开或只出一块,用专门图标工具修。
系统壁纸接口不认 ICO。先出 PNG。资源管理器「更改图标」能列出多层,那是外壳选层,不是看图在糊。
开始菜单为什么更清
外壳会选接近目标的那一层。看图窗口若停在 16px 页,你看到的就是那层。
开始菜单目标大约 24–32 逻辑像素再乘缩放。它选的是接近的那层。你的窗口若停在 16,当然更糊。
开始菜单、任务栏按逻辑像素乘缩放选接近的层。窗口里若停在 16×16,当然比开始菜单糊。这不是「开始菜单更清所以文件坏了」。
ICONDIR 头和 256 层的 PNG 压缩不是一回事
ICO 文件头是 ICONDIR,后面一串 ICONDIRENTRY 指向各尺寸位图。16、32、48 多半是 DIB;256×256 从 Vista 起经常整层改成 PNG 压缩塞进同一容器。有的老图标工具只认 DIB,会报不是有效图标,麻雀看图翻页能出 256 就说明那层在。另存时先看属性宽高是 256 还是 16,提取错层再转 JPG,得到的是马赛克当源。
CUR 光标和 ICO 容器相近,但多了热点坐标。看图软件不改热点,也不当光标编辑器。系统壁纸接口不认 ICO,先出 PNG。32 位带 alpha 的层转 JPG 没有透明通道,边缘常一圈黑边,那是铺底,不是滤镜。要给网页用,另存 PNG 副本。
老 ICO 还有 1 位 AND 掩码和 XOR 画布,深色主题下边缘发脏,是预乘和掩码对不上,不是解码器把图标「加了黑边」。EXE 资源里嵌的图标不是独立 ICO 文件,双击 exe 不会当图打开。提取错成 16×16 再当壁纸或转 JPG,得到的是马赛克。系统壁纸接口要 PNG。损坏的 ICONDIRENTRY 宽高写 0,会打不开或只出一块,回设计工具重出,不要当看图软件修图标。
CUR 的热点坐标看图里改不了,要回光标编辑器。不要把 ICO 当源去改尺寸再存 JPG,JPG 没有多层,以后抽不出 256。
提取前先翻到要的那一页再另存 PNG,不要对着网格里那张糊缩略图右键另存,那多半是 16 那层。
常见问题
能编辑哪一层? 不能当图标编辑器。另存某一页的位图副本可以。
为什么 Windows 开始菜单更清? 外壳会选接近目标的那一层。看图窗口若停在 16px 页,你看到的就是那层。