2012年5月11日金曜日

Automator: Retina画像をフォルダアクションで一括コンバート(1)

iPhoneアプリ開発でRetina画像(@2x)から、縦横半分にした非Retina画像を用意するのには、比較的手間がかかります。

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 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...