如何制作含有多种尺寸的ico格式图标

498 阅读2分钟

前言

开发的应用程序通常需要一个桌面图标,Windows 下是 ico 格式,macOS 是 icns 格式。

ICO 图标格式是一种通常包含不同分辨率(16×16,32×32,64×64 像素)和各种颜色深度(16 种颜色,32,64,128,256,16 位等)的小图像图标的文件格式。

可以将 ico 图标格式理解为一个容器,里面可以是包含一张分辨率的图,也可以是包含多张分辨率的图。

大部分 png 转 ico 格式的在线格式转换工具只支持包含一种分辨率尺寸,会导致在不同电脑或不同 Windows 系统版本桌面图标显示模糊的情况。所以,这里使用 ImageMagick 命令行工具,实现一条命令完成多尺寸 png 图转换为 ico 格式。

ImageMagick 安装

ImageMagic 是跨平台工具,支持不同系统,所以可参考官网( imagemagick.org/script/down… )选择自己喜欢的方式进行下载安装。

这里以 macOS 系统为例:

brew install imagemagick

Windows 也可使用 WinGet 安装:

winget install ImageMagick

png 转 ico

预先准备256、128、64、48、32、24、16分辨率,PNG格式的logo图。

将多张不同尺寸 png 图标放在 logo 文件夹下:

logo/
├── 256_256.png
├── 128_128.png
├── 64_64.png
├── 48_48.png
├── 32_32.png
├── 24_24.png
├── 16_16.png

然后在 logo 目录下,打开终端,输入命令:

convert 256_256.png 128_128.png 64_64.png 48_48.png 32_32.png 24_24.png 16_16.png icon.ico

即可得到一张含有多尺寸的 ico 图。

Windows 平台( Windows convert 命令是系统命令,所以需要使用 magick convert 命令):

magick convert 256_256.png 128_128.png 64_64.png 48_48.png 32_32.png 24_24.png 16_16.png icon.ico

注意

如果执行中报错信息为:

convert: width or height exceeds limit `icon.ico' @ error/icon.c/WriteICONImage/1008.

这通常意味着你的图片尺寸超出了 ICO 文件格式所支持的最大尺寸限制。ICO 文件格式对图像的尺寸有特定的限制。对于标准的 ICO 文件,单个图像的最大尺寸通常是 256 x 256 像素。所以 512 x 512 像素尺寸的图片需要移除。

得到的 ico 图标如下:

image-20240523183112182.png

可以看到左侧列表有很多不同分辨率的图标。

注意: 应至少具有以下像素:16x16、24x24、32x32、48x48 和 256x256。 这涵盖了最常见的图标大小,通过提供 256px 图标,可确保 Windows 只会纵向缩减图标,从不会纵向缩放。

blog.walterlv.com/post/conver…

构造 Windows 应用的图标 - Windows apps | Microsoft Learn