前提
跟UI 要一张1024大小的icon图
效果
运行此脚本一键可以生成各个尺寸的icon。
脚本工作原理
- 创建AppIcon.appiconset文件夹
- 生成各个尺寸icon
shell脚本,代码利用了Mac上的sips命令对图片进行了缩放
使用步骤
1、脚本和icon1024.png 图片放在一个目录内
image.png
2、执行终端命令:
sh AppIconTool.sh
脚本内目前支持的尺寸有:20 29 40 60 76 83.5, 需要其他尺寸的话,可以自己修改脚本就可以简单实现。
脚本源码:AppIconTool.sh
#!/bin/sh
# 配置尺寸数组
imageSize=(20 29 40 60 76 167)
# 图片路径
imagePath=$1
# 输出保存路径
exportPath=$2
if [ ! -n "$1" ] ;then
imagePath="icon1024.png"
fi
if [ ! -n "$2" ] ;then
exportPath="."
fi
# 输入各个尺寸icon
iPhoneIconWithSize() {
iPhoneSize=`expr $1 \* 2`
sips -Z $iPhoneSize $imagePath --out ${exportPath}/AppIcon.appiconset/icon_$1x$1@2x.png
iPhoneSize=`expr $iPhoneSize \* 3`
iPhoneSize=`expr $iPhoneSize / 2`
sips -Z $iPhoneSize $imagePath --out ${exportPath}/AppIcon.appiconset/icon_$1x$1@3x.png
}
# 输出Contents.json
setContents() {
json="{ \"images\" : ["
arr=$1
for iPhoneSize in ${arr[*]}
do
size="${iPhoneSize}x${iPhoneSize}"
# 添加1x
filename="icon_${size}.png"
json1x="{
\"size\" : \"$size\",
\"idiom\" : \"iphone\",
\"scale\" : \"2x\",
\"filename\" : \"$filename\"
},"
json="$json$json2x"
# 添加2x
filename="icon_${size}@2x.png"
json2x="{
\"size\" : \"$size\",
\"idiom\" : \"iphone\",
\"scale\" : \"2x\",
\"filename\" : \"$filename\"
},"
json="$json$json2x"
# 添加3x
filename="icon_${size}@3x.png"
json3x="{
\"size\" : \"$size\",
\"idiom\" : \"iphone\",
\"scale\" : \"3x\",
\"filename\" : \"$filename\"
},"
json="$json$json3x"
done
json1024="{
\"filename\" : \"icon_1024x1024.png\",
\"idiom\" : \"ios-marketing\",
\"scale\" : \"1x\",
\"size\" : \"1024x1024\"
}"
json="$json$json1024"
jsonEnd="], \"info\" : { \"version\" : 1, \"author\" : \"xcode\" } }"
json="$json$jsonEnd"
cat <<EOF >${exportPath}/AppIcon.appiconset/Contents.json
$json
EOF
}
mkdir ${exportPath}/AppIcon.appiconset
setContents "${imageSize[*]}"
for iPhoneSize in ${imageSize[*]}
do
iPhoneIconWithSize $iPhoneSize
done
sips -Z "1024" $imagePath --out ${exportPath}/AppIcon.appiconset/icon_1024x1024.png
网友评论