ShellScript
iOS
sips
ImageOptim

iOSのアイコン生成をコマンドラインから実行

More than 1 year has passed since last update.

メモ

対応範囲

http://resizeappicon.com/ などの生成ツールだと余計なものまで生成するので最低限のもののみシェルで生成→ついでに最適化

画像サイズ下記参考にさせて頂きました
http://qiita.com/Yuta/items/98b9ea2739718b9184de

ここから、アプリに入れ込むもののみ抽出
前提:iPhoneのみ対応、iOSは7,8以上

上記URLの↓のみ

アイコン:ホーム iOS 7/8
アイコン:ホーム 設定
アイコン:ホーム Spotlight iOS 7/8

Requirement

動かすには下記が必要です
sips:画像リサイズ
ImageOptim:画像最適化

ディレクトリ構成

下記
スクリーンショット 2015-12-15 23.10.39.jpg

から生成後

スクリーンショット 2015-12-15 23.09.55.jpg

icon_original/ディレクトリにあるicon.pngからicon/icon-xxx.pngを生成する
シェルは下記(あまりシェルスクリプト得意じゃないので文法は参考にしないでください)

make.sh
#!/bin/sh


#define --------------#
outDestDir="icon"
originalFile="icon_original/icon.png"
originalSize=`sips -g all $originalFile|grep pixelWidth|cut -c 15-`
fileBaseName="icon"
outSuffix=".png"
array=("120" "180" "29" "58" "87" "80" "120")
arrayForOutfile=("-60@2x" "-60@3x" "-29" "-29@2x" "-29@3x" "-40@2x" "-40@3x")
arrayForIndex=()
n=0
for i in "${array[@]}"
do
    arrayForIndex[n]=$n
    n=`expr $n + 1`
done

#output Directory --------------#
if [ ! -e $outDestDir ]; then
    echo "mkdir --- $outDestDir"
    mkdir "$outDestDir"
else
    echo "dir exists -- $outDestDir"
fi

#Original size --------------#
if [ ! "$originalSize" ]; then
  echo "invalid original file"
  exit;
fi


#Make Image function --------------#
function makeDiffImage () {
    if [ ! "$1" ] || [ ! "$2" ]; then
      echo "no arg"
      exit;
    fi
    echo $1"--------"$2
    # exit;

    echo "start"

    targetSize=$1
    targetFileNamePrefix=$2
    echo "sips --resampleWidth $targetSize $originalFile --out $outDestDir/$fileBaseName$targetFileNamePrefix$outSuffix"
    sips --resampleWidth $targetSize $originalFile --out $outDestDir/$fileBaseName$targetFileNamePrefix$outSuffix
    /Applications/ImageOptim.app/Contents/MacOS/ImageOptim $outDestDir/$fileBaseName$targetFileNamePrefix$outSuffix
}

#Exec --------------#
for i in "${arrayForIndex[@]}"
do
    echo $i
    makeDiffImage ${array[$i]} ${arrayForOutfile[$i]}
done

以上