LoginSignup
11
11

More than 5 years have passed since last update.

iOSのリソース画像を各サイズ一括で生成する

Last updated at Posted at 2015-03-21

特定のフォーマットのファイル名の画像を対象として、各サイズの画像を生成します。
(iPhone6 Plusにも対応しています)
※ MacOSXの標準コマンドを使用しています。

使い方

  1. 各サイズ生成したい画像のファイル名をフォーマットに沿った形にする。
  2. 1.の画像を src ディレクトリに配置する。
  3. 当スクリプトを実行(ダブルクリック)
  4. 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両アプリアイコンの全サイズを生成する

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