Skip to content
MagickCmd › ImageMagick Favicon 与图标集生成

ImageMagick Favicon 与图标集生成

用 ImageMagick 的 icon:auto-resize 从 PNG 生成多分辨率 favicon.ico,以及 iOS、Android 和 PWA 需要的各档图标尺寸。

多分辨率 favicon.ico

magick logo.png -background none \
  -define icon:auto-resize=16,32,48,64,128,256 favicon.ico

icon:auto-resize 会把列出的每个尺寸打包进同一个 .ico 文件,这正是浏览器和 Windows 都期望的形式。源图请用至少 256×256 的正方形 —— ImageMagick 缩小很干净,但往上放大变不出细节。

256 是上限

ICO 格式不支持超过 256×256 的尺寸。写 512 要么被忽略,要么生成某些 Windows 版本读不了的文件。不加 auto-resize 直接把大图转成 .ico 会直接报错:

convert: width or height exceeds limit 'favicon.ico'

到底需要哪些尺寸

尺寸用在哪
16×16浏览器标签页、书签栏
32×32任务栏、高分屏标签页
48×48Windows 桌面快捷方式
180×180iOS 主屏图标(单独的 PNG,不放进 ico)
192 / 512Android 和 PWA 的 manifest(PNG)

.ico 里放 16、32、48 就覆盖了浏览器场景。更大的应用图标必须是独立的 PNG 文件,由 HTML 或 web manifest 引用。

生成 PNG 应用图标

for s in 180 192 512; do
  magick logo.png -background none -resize ${s}x${s} \
    -gravity center -extent ${s}x${s} icon-${s}.png
done

设计提示:16×16 不是「小一号的 logo」

细节丰富的 logo 缩到 16 像素就是一团糊。如果你的标识有细线条、渐变或文字,做一个简化版本 —— 通常是一个字母或最粗的那个形状 —— 专门给小尺寸用:

magick logo-simple.png -background none \
  -define icon:auto-resize=16,32 favicon-small.ico
magick logo.png -background none \
  -define icon:auto-resize=48,64,128,256 favicon-large.ico

怎么引用

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/icon-180.png">

现代浏览器优先用 SVG,找不到才回退到 .ico。SVG favicon 缩放完美,而且通常比它替代的那一整套图标还小。


相关页面

Copied