iOSアプリ用アイコンとAndroidアプリ用アイコンに一括リサイズするJavaScript for Automation
作った。
function openDocuments(docs) { for(var i = 0; i < docs.length; i++){ var src = docs[i].toString(); // iOS sips( 57, src, src + '_icons/ios', 'Icon.png'); // 57 x 57 for iPhone non-Retina -iOS6 App sips( 114, src, src + '_icons/ios', 'Icon@2x.png'); // 114 x 114 for iPhone Retina -iOS6 App sips( 72, src, src + '_icons/ios', 'Icon-72.png'); // 72 x 72 for iPad non-Retina -iOS6 App sips( 144, src, src + '_icons/ios', 'Icon-72@2x.png'); // 144 x 144 for iPad Retina -iOS6 App sips( 60, src, src + '_icons/ios', 'Icon-60@.png'); // 60 x 60 for iPhone non-Retina iOS7- App sips( 120, src, src + '_icons/ios', 'Icon-60@2x.png'); // 120 x 120 for iPhone Retina 2x iOS7- App sips( 180, src, src + '_icons/ios', 'Icon-60@3x.png'); // 180 x 180 for iPhone Retina 3x iOS7- App sips( 76, src, src + '_icons/ios', 'Icon-76.png'); // 76 x 76 for iPad non-Retina iOS7- App sips( 152, src, src + '_icons/ios', 'Icon-76@2x.png'); // 152 x 152 for iPad Retina 2x iOS7- App sips( 228, src, src + '_icons/ios', 'Icon-76@3x.png'); // 228 x 228 for iPad Retina 3x iOS7- App sips( 29, src, src + '_icons/ios', 'Icon-Small.png'); // 29 x 29 for non-Retina -iOS6 Setting / Spotlight(iPhone) sips( 58, src, src + '_icons/ios', 'Icon-Small@2x.png'); // 58 x 58 for Retina 2x -iOS6 Setting / Spotlight(iPhone) sips( 87, src, src + '_icons/ios', 'Icon-Small@3x.png'); // 87 x 98 for Retina 3x -iOS6 Setting / Spotlight(iPhone) sips( 50, src, src + '_icons/ios', 'Icon-Small-50.png'); // 50 x 50 for non-Retina -iOS6 Spotlight(iPad) sips( 100, src, src + '_icons/ios', 'Icon-Small-50@2x.png'); // 100 x 100 for Retina -iOS6 Spotlight(iPad) sips( 40, src, src + '_icons/ios', 'Icon-Small-40.png'); // 40 x 40 for non-Retina iOS7- Setting / Spotlight sips( 80, src, src + '_icons/ios', 'Icon-Small-40@2x.png'); // 80 x 80 for Retina 2x iOS7- Setting / Spotlight sips( 120, src, src + '_icons/ios', 'Icon-Small-40@3x.png'); // 120 x 120 for Retina 3x iOS7- Setting / Spotlight sips( 512, src, src + '_icons/ios', 'iTunesArtwork.png'); // 512 x 512 for non-Retina App Store sips(1024, src, src + '_icons/ios', 'iTunesArtwork@2x.png'); // 1024 x 1024 for Retina App Store // Android sips( 48, src, src + '_icons/android/mipmap-ldpi', 'ic_launcher.png'); // 36 x 36 for ldpi Android App sips( 48, src, src + '_icons/android/mipmap-mdpi', 'ic_launcher.png'); // 48 x 48 for mdpi Android App sips( 72, src, src + '_icons/android/mipmap-hdpi', 'ic_launcher.png'); // 72 x 72 for hdpi Android App sips( 96, src, src + '_icons/android/mipmap-xhdpi', 'ic_launcher.png'); // 96 x 96 for xhdpi Android App sips(144, src, src + '_icons/android/mipmap-xxhdpi', 'ic_launcher.png'); // 144 x 144 for xxhdpi Android App sips(192, src, src + '_icons/android/mipmap-xxxhdpi', 'ic_launcher.png'); // 192 x 192 for xxxhdpi Android App sips(512, src, src + '_icons/android/', 'googleplaystore.png'); // 512 x 512 for Google Play Store } function sips(size, src, outPath, outFile){ var app = Application.currentApplication(); app.includeStandardAdditions = true; app.doShellScript('mkdir -p "' + outPath + '"'); app.doShellScript('sips --resampleWidth ' + size + ' --out "' + outPath + '/' + outFile + '" "' + src + '"'); } }
Yosemite以降のMacでスクリプトエディタを起動して、新規作成してJavaScriptに設定し、上記のコードをコピペ。それを「アプリケーション」というファイルフォーマットで書き出す。
あとは、できあがったファイルに、好きな画像ファイル(1024x1024以上を推奨)をドラッグアンドドロップして使う。
先日作ったやつはiOS用だけだったけど、今回はAndroid用も出力するようにした。今回のスクリプトが前回のスクリプトを完全に置き換えるので、今後はこれだけ使えば良い。
まあiOSとAndroidが完全に同じ1つの画像をリサイズするだけで生成できるとは思ってないけどね。形とか背景とかいろいろ仕様の違いがあるので。ただリサイズツールを複数作ってもややこしくなるので、全部の機能をまとめてみた。
ちなみに、Android用のアイコンは、「mipmap-」で始まるディレクトリを作ってそこに書き出す。昔は「drawable-」だったらしいけど、今回は新しい方にした。