Featured image of post 制作macOS icns图标

制作macOS icns图标

macOS应用桌面图标是macOS专有的icns文件格式。这里介绍使用命令行进行生成icns格式图像。

背景

macOS 应用通常需要一个桌面图标,而桌面图标的格式是 macOS 专有的 icns 格式。一般,在线图像格式转换工具转换的 icns 图标文件,通常仅有一种分辨率,而符合规范的 icns 图标里含有多种尺寸的图标。所以,本文将介绍,如何在 macOS 平台上,制作含有多种尺寸的 icns 格式图标。

制作 icns

首先需要一张 1024 x 1024 分辨率图片,然后复制下面的命令创建 run.sh 脚本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
echo "icns 生成器"
echo "-- 请先确保需要转换的PNG图片文件在脚本所在的当前文件夹,并且大小为 1024x1024 "
read -p "-- 请输入需要转换的文件的名称,包含扩展名:" filename
temp_path="$filename.iconset"
echo "--> 创建临时文件夹 $temp_path"
mkdir $temp_path
echo "-- 准备创建临时图片"
sips -z 16 16     $filename --out $temp_path/icon_16x16.png
sips -z 32 32     $filename --out $temp_path/icon_16x16@2x.png
sips -z 32 32     $filename --out $temp_path/icon_32x32.png
sips -z 64 64     $filename --out $temp_path/icon_32x32@2x.png
sips -z 128 128   $filename --out $temp_path/icon_128x128.png
sips -z 256 256   $filename --out $temp_path/icon_128x128@2x.png
sips -z 256 256   $filename --out $temp_path/icon_256x256.png
sips -z 512 512   $filename --out $temp_path/icon_256x256@2x.png
sips -z 512 512   $filename --out $temp_path/icon_512x512.png
sips -z 1024 1024   $filename --out $temp_path/icon_512x512@2x.png
echo "-- 临时图片创建完毕,准备生成 icns 文件"
iconutil -c icns $temp_path -o $filename.icns
echo "-- icns 文件生成完毕,准备清理临时文件"
rm -rf $temp_path
echo "-- 临时文件清理完毕"
echo "icns 文件生成完毕"

运行该脚本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$./run.sh
icns 生成器
-- 请先确保需要转换的PNG图片文件在脚本所在的当前文件夹,并且大小为 1024x1024
-- 请输入需要转换的文件的名称,包含扩展名:logo.png
--> 创建临时文件夹 logo.png.iconset
-- 准备创建临时图片
/logo.png
....
logo.png.iconset/icon_512x512@2x.png
-- 临时图片创建完毕,准备生成 icns 文件
icns 文件生成完毕

原理

这里使用了两个 macOS 系统自带的命令行工具 sips 进行图像大小的调整,以便生成多种分辨率的图像,iconutil 则用于将多张 png 图像合成为 icns 格式图像。

效果展示

Licensed under CC BY-NC-SA 4.0
最后更新于 May 23, 2024 21:02 +0800