icns 是 MacOS 应用程序专用的图标文件格式。我们在进行 macOS 开发、或者自定义系统应用图标的时候,经常需要把普通的 PNG 图片转换成标准的格式。MacOS 系统内部其实已经为我们自带了非常强大的制作工具:iconutil 和 sips。
首先,我们需要在桌面上准备一张 1024x1024 像素大小的正方形 PNG 图片,并为其命名为 icon.png。高分辨率的原始图片可以保证最终转换出的图标即使在 Retina 视网膜屏幕上依然清晰锐利。
在终端中,我们不能直接一行命令合成。苹果要求我们必须先创建一个专门的临时目录(后缀名必须以 .iconset 结尾),然后利用系统图像处理命令 sips 将原图裁剪并缩放成各个尺寸所需的图层文件。
# 创建临时文件夹 mkdir tmp.iconset # 使用 sips 缩放并输出各个规格的图片文件 sips -z 16 16 icon.png --out tmp.iconset/icon_16x16.png sips -z 32 32 icon.png --out tmp.iconset/icon_16x16@2x.png sips -z 32 32 icon.png --out tmp.iconset/icon_32x32.png sips -z 64 64 icon.png --out tmp.iconset/icon_32x32@2x.png sips -z 128 128 icon.png --out tmp.iconset/icon_128x128.png sips -z 256 256 icon.png --out tmp.iconset/icon_128x128@2x.png
当所有的图层缩放完成之后,我们就可以调用核心命令 iconutil 将刚才的 tmp.iconset 文件夹中的所有资源无损打包压缩进一个 icns 格式的文件中,操作非常轻松自然。
# 执行合成封装打包命令 iconutil -c icns tmp.iconset -o app.icns
大功告成!现在你的当前路径下就已经生成好了一个名为 app.icns 的标准 macOS 图标文件,你可以直接把它拖入 Xcode 项目中或者替换 Finder 中的应用图标了。