美文网首页
iOS腳本自動生成AppICon.

iOS腳本自動生成AppICon.

作者: sennnnn | 来源:发表于2019-12-16 09:56 被阅读0次

    材料

    • 準備一張1024*1024的圖片Icon.
    • 準備腳本文件.

    環境

    Mac系統.
    shell指令(Mac系統自帶.無須安裝.
    創建一個腳本文件,以下是代碼.只要命名的後綴的為.sh即可並保存.例如:GenerateIcon.sh

    打開你的終端, cd到GenerateIcon.sh所在的目錄下.例如放到Desktop中

    cd Destop

    然後終端輸入命令啟動腳本,$1 為你的1024圖片Icon路徑,$2 為你的生成文件夾路徑

    格式.
    sh xxx.sh $1 $2
    例如
    sh GenerateIcon.sh ./1024.png ./ouput

    *如果你覺得染後

    #!/bin/bash
    #這是用於生成AppIconLOGO的腳本程序
    #author Senfor
    
    #為保證腳本正常的運行.
    #version
    #GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin18)
    #Copyright (C) 2007 Free Software Foundation, Inc.
    
    #更改圖片路徑和文件輸出路徑.
    src_file=$1
    dst_path=$2
    
    # \033[字背景色;字體顏色m字符串[0m
    # 97亮白色背景 32綠色
    # \033[97;32m
    
    #warn()警告顏色 由於寬度和高度不相等
    warn() {
         local yellow="\033[1;33m"
         local normal="\033[0m"
         echo "[${yellow}WARNING${normal}] $1 , 圖片的寬度和高度不相等"
    }
    
    #error()警告顏色  圖片出錯/不存在
    error() {
         local red="\033[1;31m"
         local normal="\033[0m"
         echo "[${red}ERROR${normal}] $1 ,圖片出錯/不存在"
    }
    
    #info()綠色顏色  輸出信息
    info() {
         local green="\033[1;32m"
         local normal="\033[0m"
         echo "[${green}INFO${normal}] $1 ,輸出信息"
    }
    
    
    
    VERSION=1.0
    AUTHOR=Senfor
    
    usage() {
    PATHIMGFILE=`basename $0`
    cat << EOF
    $PATHIMGFILE version $VERSION by $AUTHOR
    
    參數
    USAGE: $PATHIMGFILE
    
    DESCRIPTION:
        用於腳本化生成ICON
    
    確保腳本當前目錄下有圖片路徑.
    可根據的自己的需求是否修改圖片路徑.
    案例:
        $PATHIMGFILE
    
    EOF
    exit 1
    }
    
    while getopts 'h' arg; do
        case $arg in
            h)
                usage
                ;;
            ?)
                # OPTARG
                usage
                ;;
        esac
    done
    
    shift $(($OPTIND - 1))
    
    #不需要判定腳本命令
    #[ $# -ne 2 ] && usage
    
    
    #命令指令開始起點,源文件和生成文件夾的路徑,可根據項目修改.
    startGenerate(){
        # src_file=./1024.png
        # dst_path=./output
    
        # check source file
        [ ! -f "$src_file" ] && { error "The source file $src_file does not exist, please check it."; exit -1; }
    
        # check width and height 
        src_width=`sips -g pixelWidth $src_file 2>/dev/null|awk '/pixelWidth:/{print $NF}'`
        src_height=`sips -g pixelHeight $src_file 2>/dev/null|awk '/pixelHeight:/{print $NF}'`
    
        [ -z "$src_width" ] &&  { error "The source file $src_file is not a image file, please check it."; exit -1; }
    
        if [ $src_width -ne $src_height ];then
            warn "The height and width of the source image are different, will cause image deformation."
        fi
    
        # create dst directory 
        [ ! -d "$dst_path" ] && mkdir -p "$dst_path"
    
        # 修改AppIcon尺寸
        sizes_mapper=`cat << EOF
        Icon-20@2x        40
        Icon-20@3x        60
        Icon-29@2x        58
        Icon-29@3x        87
        Icon-40@2x        80
        Icon-40@3x        120
        Icon-60@2x        120
        Icon-60@3x        180
        Icon-1024        1024`
    
        OLD_IFS=$IFS
        IFS=$'\n'
        srgb_profile='/System/Library/ColorSync/Profiles/sRGB Profile.icc'
    
        for line in $sizes_mapper
        do
            name=`echo $line|awk '{print $1}'`
            size=`echo $line|awk '{print $2}'`
            #生成圖片
            info "Generate $name.png ..."
            if [ -f $srgb_profile ];then
                sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z $size $size $src_file --out $dst_path/$name.png >/dev/null 2>&1
            else
                sips -z $size $size $src_file --out $dst_path/$name.png >/dev/null
            fi
        done
    
        info "Congratulation. 所有圖片生成成功,路徑在$dst_path."
    
        IFS=$OLD_IFS
    
    }
    
    #執行指令
    startGenerate
    
    
    
    

    相关文章

      网友评论

          本文标题:iOS腳本自動生成AppICon.

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