1個1個の手間は大したこと無くても、ファイルが数十〜百個単位になったり、フォルダ階層が複雑になったりすると、コンバートのし忘れなど、ヒューマンエラーが問題になります。
特に、プログラム担当俺、サウンド担当俺、グラフィック担当俺、というインディーアプリ開発者にとっては、これらの作業は自動化しておきたいものです。
今回はRetina画像を、非Retina画像にコンバートするフォルダアクション作ってみます。フォルダクションとは、フォルダにファイルがコピーされると自動で起動するバッチ処理で、Mac OS X標準の機能です。
iPhoneアプリ開発者でない人も、スクリプトを書き換えるだけで、いろいろと応用が効くものが作れますので、ぜひ参考にして下さい。
なお、今回の作業は、Snow Leopardで行なっています。
簡単に仕様を決めておく
コンバーターの仕様はこんな感じです。- Retina画像ファイルと同じ階層に、convertフォルダを作成してその中に非Retina画像を生成。
この時に、非Retina画像のファイル名からは@2xを除外する。 - Retina画像ファイルがある階層に、convertというファイルが存在する場合、そのRetina画像のコンバートは行わない。結果画面ウィンドウにエラー報告を表示する。
- サブフォルダを再帰的に検索する。
- 〜@2x.png、〜@2x.jpg、〜@2x.tif以外のファイルは無視する。
Retina画像と同じ階層にconvertフォルダを自動作成して、その中に非Retina画像を生成するようにすれば、たとえXcodeプロジェクトのリソースフォルダーを、丸ごとフォルダアクションにかけたとしても安全だと考えました。
使用ツール
使用するツールはAutomator、Ruby、RubyGems、ImageMagickです。今回はツール環境のインストールについては長くなるので割愛します。
要点だけ書くと、
- AutomatorとRubyはもともとMacにインストールされているものです。
- 画像処理ツールのImageMagickは、MacPortやHomebrewなどを使用してインストールするのが楽です。
- RubyからRMagickを通してImageMagickを使うので、RubyGemsのインストールも忘れないで下さい。
- RMagickはRubyGemsからインストールします。
次回へ続きます。
Automator: Retina画像をフォルダアクションで一括コンバート(2)
0 件のコメント:
コメントを投稿