0x01 icns介绍
icns是macbook电脑下的图标文件,是由PNG文件转换而来的,在编客户端软件的时候可能会用到,但是这个文件非常恶心,网络上找不到在线生成工具,只能自己写脚本或者下载软件将png文件转换为icns文件。
0x02 网上的垃圾脚本
网上有很多shell脚本生成icns文件,但是坑实在是太多了,搜出来的脚本基本上都如出一辙,都是同样的错误!天下文章一大抄,浪费的大把大把的时间填坑,下面发个完整版本。
0x03 png转icns脚本
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
PNG=$1 OUT=$2 if [ -z "$PNG" ] || [ -z "$OUT" ];then echo "[error]:please input png filename and out filename!" exit fi if [ ! -d "icons.iconset" ];then echo "[info]:create dir icons.iconset" mkdir icons.iconset else echo "[error]:icons.iconset dir already exists" exit fi sips -z 16 16 $PNG --out icons.iconset/icon_16x16.png sips -z 32 32 $PNG --out icons.iconset/icon_16x16@2x.png sips -z 32 32 $PNG --out icons.iconset/icon_32x32.png sips -z 64 64 $PNG --out icons.iconset/icon_32x32@2x.png sips -z 64 64 $PNG --out icons.iconset/icon_64x64.png sips -z 128 128 $PNG --out icons.iconset/icon_64x64@2x.png sips -z 128 128 $PNG --out icons.iconset/icon_128x128.png sips -z 256 256 $PNG --out icons.iconset/icon_128x128@2x.png sips -z 256 256 $PNG --out icons.iconset/icon_256x256.png sips -z 512 512 $PNG --out icons.iconset/icon_256x256@2x.png sips -z 512 512 $PNG --out icons.iconset/icon_512x512.png sips -z 1024 1024 $PNG --out icons.iconset/icon_512x512@2x.png iconutil -c icns icons.iconset -o $OUT rm -rf icons.iconset echo "[info]:complated!" |
使用方法就是保存为shell文件,然后sh运行一下就可以了,比如我保存为icns.sh后用下面的命令运行:
1 |
sh icns.sh 1024x1024.png icon.icns |
其中有两个输入参数:
- 1024x1024.png 是原本的1024x1024分辨率的png图片,必须的必!
- icon.icns 是生成的icns图标文件,注意的是必须要以icns为扩展名,否则会失败!
0x04 关于一些坑
- 是否可以修改icons.iconset文件夹名称?
答案是不可以!肯定会报错!
2. 是否可以修改icon_XXX.png名称?
答案是不可以!网上很多脚本都修改了这个名字,所以会爆出一些莫名其妙的错误!