iOS icon各尺寸一键生成shell脚本

前提

跟UI 要一张1024大小的icon图

效果

运行此脚本一键可以生成各个尺寸的icon。

脚本工作原理

1.创建AppIcon.appiconset文件夹
2.生成各个尺寸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 57 60 76 167 512)

# 图片路径
imagePath=$1
# 输出保存路径
exportPath=$2

if [ ! -n "$1" ] ;then
    imagePath="icon1024.png"
fi

if [ ! -n "$2" ] ;then
    exportPath="."
fi

# 输入各个尺寸icon
iPhoneIconWithSize() {
iPhoneSize=`expr $1 \* 1`
sips -Z $iPhoneSize $imagePath --out ${exportPath}/AppIcon.appiconset/icon_$1x$1@1x.png
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\" : \"1x\",
      \"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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容