场景:在开发软件时候,出现要mac平台和windows平台下分别要相应格式的图标.而且是点击打开该icon文件后里面是合成了多个尺寸的“列表”图的集合。
以下以insong.png为例生成insong.icns以及insong.ico.
注:由于笔者是Mac系统的程序员一枚,在解决这个问题的时候,搜索了不少方案,尤其是生成windows的icn格式那折腾了较久。故留此足迹,以后备忘。
正文:
第一步 准备多张想要尺寸的图片
1需要设计师同学给一张1024x1024的png图,如我的命名为insong.png;
2命令行根据上面的1024png大图主动生成其他想要的尺寸的png图片
3创建icons.iconset文件夹来存放,注意文件夹名必须以.iconset结尾,否则在生成icns文件时会报错
4命令行生成多个文件
sips -z 16 16 insong.png --out icons.iconset/insong_16x16.png
sips -z 32 32 insong.png --out icons.iconset/insong_16x16@2x.png
sips -z 32 32 insong.png --out icons.iconset/insong_32x32.png
sips -z 64 64 insong.png --out icons.iconset/insong_32x32@2x.png
sips -z 64 64 insong.png --out icons.iconset/insong_64x64.png
sips -z 128 128 insong.png --out icons.iconset/insong_64x64@2x.png
sips -z 128 128 insong.png --out icons.iconset/insong_128x128.png
sips -z 256 256 insong.png --out icons.iconset/insong_128x128@2x.png
sips -z 256 256 insong.png --out icons.iconset/insong_256x256.png
sips -z 512 512 insong.png --out icons.iconset/insong_256x256@2x.png
sips -z 512 512 insong.png --out icons.iconset/insong_512x512.png
sips -z 1024 1024 insong.png --out icons.iconset/insong_512x512@2x.png
注:这一步也可以由设计师同学直接提供多个尺寸,或者其他应用生成
第二步 生成icns图标
iconutil -c icns icons.iconset -o insong.icns
这样就完成了Mac上的图标文件insong.icns ,点击打开后发现有很多个尺寸的“列表”icon
第三步 生成ico图标
1.安装icoutils
brew install icoutils
2. 生成ico图标
icotool -c insong_16x16.png insong_32x32.png insong_64x64.png insong_128x128.png insong_256x256.png insong_512x512.png -o insong.ico
这样就生成了ico图标文件insong.ico,点击打开后发现有很多个尺寸的“列表”icon。
细心的读者可能发现,前面insong.icns打开有12张小图,而insong.ico则只有6张图,这是因为前者icons.iconset文件夹下配置了12张图片,后者手动指定了6张。具体数量都是可以根据需求指定。注:在生成insong.ico的时候如果太多张,会导致生成文件体积明显较大。