Inkscapeでアプリのアイコン作成

Inkscapeはオープンソースで開発されているドローソフト。iOSアプリ開発に必要なアイコン類を作成するのに使用している。ベクトル画像なので拡大や縮小をしても劣化がないので重宝する。しかし、最近のiOSデバイスも必要なアイコンサイズが増えて、多数のサイズの画像を出力するのは、いささか面倒。なので、自動で一括して必要なサイズの画像を出力できるようにしてみた。とは言っても、Inkscapeのコマンドラインオプションに有り難いことに指定サイズの画像に出力できる機能があるので、それを利用するバッチファイルを書いただけなんだけど。
作ったバッチファイル
set INKSCAPE_PATH="C:\Program Files\Inkscape\Inkscape.exe"
rem iPhone
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_20.png" -w 20 -h 20
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_29.png" -w 29 -h 29
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_40.png" -w 40 -h 40
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_58.png" -w 58 -h 58
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_60.png" -w 60 -h 60
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_80.png" -w 80 -h 80
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_87.png" -w 87 -h 87
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_120.png" -w 120 -h 120
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_180.png" -w 180 -h 180
rem iPad
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_20.png" -w 20 -h 20
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_29.png" -w 29 -h 29
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_40.png" -w 40 -h 40
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_58.png" -w 58 -h 58
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_76.png" -w 76 -h 76
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_80.png" -w 80 -h 80
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_83_5.png" -w 83.5 -h 83.5
%INKSCAPE_PATH% -D -f %1 -e "%~d1%~p1%~n1_152.png" -w 152 -h 152
pause
1行目のInkscapeのパスを指定している部分は自分の環境に合わせて変更が必要。最後にpauseを入れてあるのは、もしエラーが出た時にコマンドプロンプトの画面がすぐ消えると分からなくなるので入れてあるだけで、必要なければ取っても構わない。上の内容をバッチファイルとして保存する。(ResizeIcon.batなど、拡張子が.batであれば何でもいい。)上のバッチファイルは、出力するサイズが重複しているので、無駄な処理になっているが、iPhoneとiPadで必要なサイズと言う例示の意味で、そのままにしてある。もちろん、重複部分を省いてもいいし、そのままでも特に問題もない。
Inkscapeでアイコンを作成する
例えば1024x1024など、大きめのサイズでアイコンを作成する。iTunesConnectで使用できるラージサイズのアイコンにしておくと、いいんじゃないかと。注意点としては作成したオブジェクトが全部出力対象となるので、アイコン以外のオブジェクトは置かない事。inkscape_1
こんなアイコンを作ったとする。
バッチファイルの使い方
保存したバッチファイルにInkscapeのファイルをドラッグ&ドロップするだけ。特にエラー処理なども入れてないので悪しからず。 inkscape_2
出力先に同名のファイルがあれば上書きされるので、必要なファイルが入ってるフォルダで実行しないように注意。
inkscape_3
Inkscapeのファイルと同じ場所に画像が出力される。