1. 准备一张无损的png图片(1024x1024)
2. 新建一个文件夹 必须要以iconset为后缀
$ mkdir hgl_pngpic.iconset
3. 使用sips 命令剪切10个不一样的图片(sips的用法)
$ sips -z 16 16 mmm.png --out hgl_pngpic.iconset/icon_16x16.png
.
.
.
4. 整合成一张icns的图片
$ iconutil -c icns hgl_pngpic.iconset -o hgl.icns
此时当前文件夹下面的hgl.icns 就是你想要的图标啦。
注:你也是可以自己写一个sh文件,在图片文件夹下面执行 $ mkIcons.sh filename.png
#!/bin/bash hgl=$1 echo '当前需要转换的文件地址为' $hgl # 创建一个文件夹 必须要以iconset为后缀
mkdir hgl_pngpic.iconset # 使用sips命令生成 10张小图
sips -z 16 16 $hgl --out hgl_pngpic.iconset/icon_16x16.png
sips -z 32 32 $hgl --out hgl_pngpic.iconset/[email protected] sips -z 32 32 $hgl --out hgl_pngpic.iconset/icon_32x32.png
sips -z 64 64 $hgl --out hgl_pngpic.iconset/[email protected] sips -z 128 128 $hgl --out hgl_pngpic.iconset/icon_128x128.png
sips -z 256 256 $hgl --out hgl_pngpic.iconset/[email protected] sips -z 256 256 $hgl --out hgl_pngpic.iconset/icon_256x256.png
sips -z 512 512 $hgl --out hgl_pngpic.iconset/[email protected] sips -z 512 512 $hgl --out hgl_pngpic.iconset/icon_512x512.png
sips -z 1024 1024 $hgl --out hgl_pngpic.iconset/[email protected] # 使用iconutil命令将文件夹下的10张小图整合为一张icns图片
iconutil -c icns hgl_pngpic.iconset -o hgl.icns # 清理中间产物 即文件夹及里面的10张图片
rm -rf hgl_pngpic.iconset