摘要
本文主要介绍如何在mac电脑下生成icns文件,众所周知,icns文件是mac电脑上的图标文件,但是这个文件的生成却是十分的繁琐,并且网上的生成脚本五花八门,着实让人头大,本文介绍什么味icns文件,给出生成icns的可用脚本。
0x01 icns介绍
icns是macbook电脑下的图标文件,是由PNG文件转换而来的,在编客户端软件的时候可能会用到,但是这个文件非常恶心,网络上找不到在线生成工具,只能自己写脚本或者下载软件将png文件转换为icns文件。
0x02 网上的垃圾脚本
网上有很多shell脚本生成icns文件,但是坑实在是太多了,搜出来的脚本基本上都如出一辙,都是同样的错误!天下文章一大抄,浪费的大把大把的时间填坑,下面发个完整版本。
0x03 png转icns脚本
代码如下:
Shell
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!"
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"
mkdiricons.iconset
else
echo"[error]:icons.iconset dir already exists"
exit
fi
sips-z1616$PNG--outicons.iconset/icon_16x16.png
sips-z3232$PNG--outicons.iconset/icon_16x16@2x.png
sips-z3232$PNG--outicons.iconset/icon_32x32.png
sips-z6464$PNG--outicons.iconset/icon_32x32@2x.png
sips-z6464$PNG--outicons.iconset/icon_64x64.png
sips-z128128$PNG--outicons.iconset/icon_64x64@2x.png
sips-z128128$PNG--outicons.iconset/icon_128x128.png
sips-z256256$PNG--outicons.iconset/icon_128x128@2x.png
sips-z256256$PNG--outicons.iconset/icon_256x256.png
sips-z512512$PNG--outicons.iconset/icon_256x256@2x.png
sips-z512512$PNG--outicons.iconset/icon_512x512.png
sips-z10241024$PNG--outicons.iconset/icon_512x512@2x.png
iconutil-cicnsicons.iconset-o$OUT
rm-rficons.iconset
echo"[info]:complated!"
使用方法就是保存为shell文件,然后sh运行一下就可以了,比如我保存为icns.sh后用下面的命令运行:
Shell
sh icns.sh 1024x1024.png icon.icns
1
shicns.sh1024x1024.pngicon.icns
其中有两个输入参数:
1024x1024.png 是原本的1024x1024分辨率的png图片,必须的必!
icon.icns 是生成的icns图标文件,注意的是必须要以icns为扩展名,否则会失败!
0x04 关于一些坑
是否可以修改icons.iconset文件夹名称?
答案是不可以!肯定会报错!
2. 是否可以修改icon_XXX.png名称?
答案是不可以!网上很多脚本都修改了这个名字,所以会爆出一些莫名其妙的错误!