批量生成mac icns图标文件脚本
前两天看到了个给Mac应用换icon的教程:快速生成 Mac App icns 图标,不过教程是针对单个png图片转换的。因为懒得找轮子,所以自己写了个批量转换的脚本。
#!/bin/bash
path=$1
#检查是否输入了参数
if [ "$1" == "" ];
then
echo "请输入png文件所在目录作为参数,取消请按 ctrl+c"
read path
fi
#校验参数
if [ ! -d $path ];
then
echo "请将所有png文件放在单独的文件夹目录下,并将文件夹路径作为参数"
exit
fi
#目标输出文件夹
if [ ! -d "$path/icons" ]
then $(mkdir $path/icons)
fi
files=$(ls $path)
for filename in ${files[@]}
do
echo $filename
#校验格式,忽略非png文件
if [ ${filename: -4} != '.png' ]
then continue
fi
#TODO: 文件重名问题
#取文件名去掉空格
iconname=$(echo $filename | awk -F"[.]" '{print $1}' | grep -o "[^ ]\+\( \+[^ ]\+\)*").iconset
echo $iconname
#如果文件夹已经存在,忽略,防止最后清理文件误删
if [ -d $path/$iconname ]
then continue
fi
#新建单个icon的素材目录
$(mkdir $path/$iconname)
#生成各种size的素材
$(sips -z 16 16 $path/$filename --out $path/$iconname/icon_16x16.png)
$(sips -z 32 32 $path/$filename --out $path/$iconname/icon_16x16@2x.png)
$(sips -z 32 32 $path/$filename --out $path/$iconname/icon_32x32.png)
$(sips -z 64 64 $path/$filename --out $path/$iconname/icon_32x32@2x.png)
$(sips -z 128 128 $path/$filename --out $path/$iconname/icon_128x128.png)
$(sips -z 256 256 $path/$filename --out $path/$iconname/icon_128x128@2x.png)
$(sips -z 256 256 $path/$filename --out $path/$iconname/icon_256x256.png)
$(sips -z 512 512 $path/$filename --out $path/$iconname/icon_256x256@2x.png)
$(sips -z 512 512 $path/$filename --out $path/$iconname/icon_512x512.png)
$(sips -z 1024 1024 $path/$filename --out $path/$iconname/icon_512x512@2x.png)
#转换成icns
# echo "iconutil -c icns $path/$iconname -o $path/icons/$iconname.icns"
$(iconutil -c icns $path/$iconname -o $path/icons/$iconname.icns)
#清理中间文件
$(rm -rf $path/$iconname)
done