LoginSignup
3
2

More than 5 years have passed since last update.

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

Posted at

メモ

対応範囲

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

以上

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2