特定のフォーマットのファイル名の画像を対象として、各サイズの画像を生成します。
(iPhone6 Plusにも対応しています)
※ MacOSXの標準コマンドを使用しています。
使い方
- 各サイズ生成したい画像のファイル名をフォーマットに沿った形にする。
- 1.の画像を src ディレクトリに配置する。
- 当スクリプトを実行(ダブルクリック)
- build ディレクトリに各サイズの画像が生成される。
ファイル名フォーマット
画像名-@3xのサイズ-@2xのサイズ-@1xのサイズ.拡張子
例: button-128-64-32.png
// こんな感じに配置すると、画像が生成されます。
.
├── create_ios_all_size_images.command
│
├── src // リサイズ元の画像を配置する
│ └── button-128-64-32.png
│
└── build // リサイズ後の画像が生成される
├── button.png
├── button@2x.png
└── button@3x.png
コード
githubにも置いてます
roana0229-create-ios-all-size-images-shellscript
create_ios_all_size_images.command
#!/bin/sh
# 実行した場所/src へ移動
cd `dirname $0`/src
# 出力ディレクトリの生成
outdir="../build"
mkdir -p $outdir
for file in *\.* ; do
# jpg, png以外を除外する
if [[ $file =~ .*\.[^(jpg|png)] ]] ; then
continue
fi
# ここでファイルを生成する
if [[ $file =~ (.+)-(.+)-(.+)-(.+)\.(jpg|png) ]] ; then
echo "CREATE: ${BASH_REMATCH[1]}@3x.png, ${BASH_REMATCH[1]}@2.png, ${BASH_REMATCH[1]}.png"
sips -Z ${BASH_REMATCH[2]} ${BASH_REMATCH[0]} --out "${outdir}/${BASH_REMATCH[1]}@3x.png" | >/dev/null 2>&1
sips -Z ${BASH_REMATCH[3]} ${BASH_REMATCH[0]} --out "${outdir}/${BASH_REMATCH[1]}@2x.png" | >/dev/null 2>&1
sips -Z ${BASH_REMATCH[4]} ${BASH_REMATCH[0]} --out "${outdir}/${BASH_REMATCH[1]}.png" | >/dev/null 2>&1
else
echo "ファイル名が対応していません: ${file}"
echo "例:button-128-64-32.png (文字列-@3xのサイズ-@2xのサイズ-@1xのサイズ.拡張子)"
fi
done
リンク
アイコン生成用のものは、こちらの記事で書かれています。
MacOSXのシェルスクリプトだけで、iOS, Android両アプリアイコンの全サイズを生成する