酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

MacでiOSとAndroid用のアイコンを1024x1024のストア申請用の画像からスクリプトで一気に作成する

とあるプロジェクトでiOS/Androidそれぞれに対応したアプリを開発しているのですが、アイコン用にストア申請用の1024x1024の画像をいただきました。

たかだか十数枚なのでペイントツールを使って1枚1枚手作業で縮小しても構わなかったのですが、微調整が入る度に手作業で縮小しないといけないのは労力を考えると心が折れてしまいそうだったので、シェルスクリプトで一括処理させてみました。

スクリプト

Macで標準で用意されているリサイズ用のコマンドsipsを使用します。アスペクト比を保ったまま縮小させるオプションがあったりとなかなか便利なコマンドです。

#!/bin/bash

# iOS
mkdir -p iOS

sips -z 40 40 "${1}" --out "iOS/Icon-40.png"
sips -z 80 80 "${1}" --out "iOS/Icon-40@2x.png"
sips -z 120 120 "${1}" --out "iOS/Icon-40@3x.png"
sips -z 120 120 "${1}" --out "iOS/Icon-60@2x.png"
sips -z 180 180 "${1}" --out "iOS/Icon-60@3x.png"
sips -z 76 76 "${1}" --out "iOS/Icon-76.png"
sips -z 152 152 "${1}" --out "iOS/Icon-76@2x.png"
sips -z 29 29 "${1}" --out "iOS/Icon-Small.png"
sips -z 58 58 "${1}" --out "iOS/Icon-Small@2x.png"
sips -z 87 87 "${1}" --out "iOS/Icon-Small@3x.png"

# Android
mkdir -p Android/mipmap-hdpi
mkdir -p Android/mipmap-ldpi
mkdir -p Android/mipmap-mdpi
mkdir -p Android/mipmap-xhdpi
mkdir -p Android/mipmap-xxhdpi
mkdir -p Android/mipmap-xxxhdpi

sips -z 72 72 "${1}" --out "Android/mipmap-hdpi/ic_launcher.png"
sips -z 36 36 "${1}" --out "Android/mipmap-ldpi/ic_launcher.png"
sips -z 48 48 "${1}" --out "Android/mipmap-mdpi/ic_launcher.png"
sips -z 96 96 "${1}" --out "Android/mipmap-xhdpi/ic_launcher.png"
sips -z 144 144 "${1}" --out "Android/mipmap-xxhdpi/ic_launcher.png"
sips -z 192 192 "${1}" --out "Android/mipmap-xxxhdpi/ic_launcher.png"

適当に resize.sh とか名前をつけて保存しておきます。

使い方

ターミナルで下記のように実行します。

$ resize.sh source.png

どばーと縮小画像が生成されます。これで一通り必要なアイコン画像を生成できるはずです。

f:id:ch3cooh393:20160522104900p:plain

間違い・漏れがあれば教えてください。