美文网首页
iOS icon各尺寸一键生成

iOS icon各尺寸一键生成

作者: 刘明洋 | 来源:发表于2022-01-20 18:43 被阅读0次

    前提

    跟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 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
    
    
    
    

    相关文章

      网友评论

          本文标题:iOS icon各尺寸一键生成

          本文链接:https://www.haomeiwen.com/subject/pphkhrtx.html