为啥我的 favicon.ico 文件比其各部分的总和大得多?

Posted

技术标签:

【中文标题】为啥我的 favicon.ico 文件比其各部分的总和大得多?【英文标题】:Why is my favicon.ico file so much larger than the sum of its parts?为什么我的 favicon.ico 文件比其各部分的总和大得多? 【发布时间】:2015-10-02 10:28:43 【问题描述】:

我创建了一个 favicon.ico 文件,其中包含三种尺寸的 .png 图标大小,16px、32px 和 64px。

在我的 Mac Finder 中,使用 ImageOptim 优化它们后,它们的大小分别为 339b、1kb 和 4kb。那么我们可能会四舍五入到 6kb 吗?

但是,当我运行这个 ImageMagick 命令时:

convert 16.png 32.png 64.png myfav.ico

生成的 .ico 文件为 22kb!

这是一个非常大的文件,出乎意料。

我做错了什么?我能做些什么来使它更小(如果有的话)?

【问题讨论】:

【参考方案1】:

ico 文件本身不是压缩文件。

您可以对其进行 gzip 压缩,您会看到压缩后的大小将小于 3 个 png 文件大小的总和。 ico 文件在用于减小大小之前最常被压缩(使用 apache、nginx 等)。

所以,它们这么大的原因是压缩算法很弱。

【讨论】:

感谢您的回答,我想我认为 .ico 只是一个保存文件的容器,我认为它不像其他图像格式......我我猜现在可能是吗? 通常,.ico 中的图像被保存为未压缩的 BMP 图像。如果您从 png 转换,这些可能会以每像素 32 位存储。当 Windows Vista 出现时,Microsoft 增加了对嵌入式 PNG 文件的支持,但这往往是针对 256x256 图标的,这样旧的应用程序就不会中断。

以上是关于为啥我的 favicon.ico 文件比其各部分的总和大得多?的主要内容,如果未能解决你的问题,请参考以下文章

favicon.ico怎么显示出来呢?

为啥看不了有的人的朋友圈favicon.ico

关于favicon.ico的问题

favicon.png 与 favicon.ico - 为啥我应该使用 PNG 而不是 ICO?

node.js中为啥请求favicon.ico

在使用vue脚手架时为啥不能加载favicon.ico图标