如何让imagemagick创建小于15k的favicon

如何让imagemagick创建小于15k的favicon,imagemagick,favicon,imagemagick-convert,ico,Imagemagick,Favicon,Imagemagick Convert,Ico,我正在使用ImageMagick的convert命令将3个不同大小的图标(16、32、48像素正方形、repsective)组合成一个favicon.ico $ convert --version Version: ImageMagick 6.8.9-7 Q16 x86_64 2015-07-06 http://www.imagemagick.org Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC Features: DPC O

我正在使用ImageMagick的
convert
命令将3个不同大小的图标(16、32、48像素正方形、repsective)组合成一个
favicon.ico

$ convert --version
Version: ImageMagick 6.8.9-7 Q16 x86_64 2015-07-06 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib freetype jng jpeg png tiff xml zlib

$ convert 16.png 32.png 48.png favicon.ico
这三个文件很小,因为我已经通过ImageAlpha和ImageOptim运行了它们:

$ ls -alh *.png 
-rw-r--r--   1 user  staff   219B Mar 20 11:46 16.png
-rw-r--r--   1 user  staff   344B Mar 20 11:46 32.png
-rw-r--r--   1 user  staff   469B Mar 20 11:44 48.png
但是,ImageMagick创建的输出文件是15K

$ ls -alh favicon.ico 
-rw-r--r--  1 user  staff    15K Mar 20 12:01 favicon.ico
类似地,当我将3张png图像提供给免费在线服务时,生成的
output.ico
文件也是15K


为什么生成的文件会如此巨大,有没有其他方法可以得到更小的ico文件?ImageMagick将ico文件的子图像写入未压缩的BMP图像,
因此,15KB是三幅图像的预期值,每幅图像包含32位RGBA像素。您可以通过删除透明度来获得较小的ICO文件。

此较大的意外大小是由于ICO格式本身,而不是ImageMagick。例如,给出了类似的结果。警告:


与其专注于
favicon.ico
文件本身,一个有效的解决方法是(例如,更改Apache配置以启用
.ico
文件的GZip压缩)。

如何共享您的图标以便人们可以帮助您?我不确定这与我的特定图标有任何关系,如下面的答案所述,因此,在这里提供我自己的图标只会淡化这个问题。正如你所希望的,但我想说,这里有10-20%的ImageMagick问题是通过更新软件版本解决的,而你的问题已经过时了,因此,我打算用一个更新的版本为您测试它。我刚刚更新到最新版本的ImageMagick,可与homebrew(6.9.3-6)一起使用,并重新测试了该命令,文件大小相同。谢谢你指出我的版本已经过时了。谢谢,我昨天在发布了这篇文章并进行了更多搜索之后,看到了你关于另一个问题的答案(不幸的是,在我发布之前,我的搜索没有找到任何结果,唉)。这里有很好的建议。但是我对ICO的尺寸非常失望。浏览器最佳实践(如YSlow)规定了文件^。。。我只尝试了两种分辨率
16.png
32.png
,这两种分辨率组合成一个5K文件:-/是的,我也观察到了类似的情况,尤其是在添加更大的尺寸(例如256x256)时。这是有道理的:如果我将每个文件分别从PNG转换为ICO,48x48 PNG文件将比32x32大,32x32比16x16图像大。超差遗留格式:'(