【Bash】Androidアプリ用のアイコンを生成する
Androidアプリを作る時に、解像度別のアプリアイコンを用意しなくてはなりません。
そこで今回はアプリアイコンのPNG画像を自動で生成するスクリプトを書いてみました。
SVGのベクタグラフィックスからアプリアイコン用の複数のサイズのPNG画像を一括で生成します。(mdpi(48x48), hdpi(72x72), xhdpi(96x96), xxhdpi(144x144), Playストア用(512x512))
※inkscapeのコマンドを使用しているのでinkscapeがインストールされている必要があります。
Bash用のシェルスクリプトです。
#!/bin/bash FILE=$1 generate() { mkdir generated cd generated mkdir mipmap-mdpi mkdir mipmap-hdpi mkdir mipmap-xhdpi mkdir mipmap-xxhdpi cd ../ inkscape -z -e "generated/mipmap-mdpi/ic_launcher.png" -w 48 -h 48 $FILE inkscape -z -e "generated/mipmap-hdpi/ic_launcher.png" -w 72 -h 72 $FILE inkscape -z -e "generated/mipmap-xhdpi/ic_launcher.png" -w 96 -h 96 $FILE inkscape -z -e "generated/mipmap-xxhdpi/ic_launcher.png" -w 144 -h 144 $FILE inkscape -z -e "generated/ic_512.png" -w 512 -h 512 $FILE echo -e "\e[1;32mSuccess!\e[m" 1>&2 } if [ $# -eq 1 ]; then if [ ! -e $FILE ]; then echo -e "\e[1;31mIt does not exist.\e[m" 1>&2 exit 1 fi generate else # echo -e "\e[1;31mPlease Input FileName of SVG. like ***.svg\e[m" 1>&2 exit 1 fi
generateAppIcon などと名前を付けてPATHを通したディレクトリに配置すると良いと思います。
SVGファイルのあるディレクトリで
$ generateAppIcon sample.svg
のように実行するとPNG画像が各解像度ごとにフォルダに分けて出力されます。
それでは~