はじめに
mixiグループ Advent Calendar 2017 の13日目の記事です。
「家族アルバム みてね」というサービスの開発を行っている、@gembafです。
仕事として、Photoshopを使う機会があったので、記事にしてみました。
ちなみに、今回初めて使いました。
みてね とは
子どもの成長をいつでも、どこでも、いつまでも
というテーマの元、スマホで撮った子どもの写真や動画を、簡単に共有・整理できることにより、家族で楽しく会話したり、成長をふりかえることができるアプリです。
やりたいこと
大量の画像に対して、Photoshopで色々加工して、いい感じの画像を量産したい (意訳)
問題点
- 1つ1つ手でポチポチやっていくの辛すぎ問題
- デザイナさんのリソースを専有できない
- デザイナさんにはもっと高尚な作業をしてほしい
ということで、こんな仕事はコンピュータにやってもらいました
本題
流れとしては以下の通りです。
- Photoshopでアクションを定義
- Photoshopでアクションをドロップレット化
- ドロップレットをスクリプトで実行
今回は、例として72x72
の画像ファイルを、24x24
にリサイズしたいと思います。
Photoshopでアクションを定義
アクションとは
アクションの作成および再生方法(公式)
アクションとは、Photoshop での一連の作業を記憶しておいて、必要な時に再利用できるようにする機能です。いくつもの作業をその都度メニューから選択して実行する手順を、アクション機能を使用することにより、2、3 のステップで自動的に実行することができます。
使い方
詳細については上記の公式ドキュメントを参照してください。
基本的な流れは以下のとおりです。
- 画像開く
- アクションの録画開始
- リサイズ
- 別ファイルとして保存
- 画像閉じる(超重要!!!)
- アクションの録画終了
これでアクションを定義できました。
ファイルを開いてから、作成したアクションを再生すると、3〜5が実行されます。
ちなみに、5をやっておくと、リサイズが終わった画像は自動でタブが閉じられるので便利です。
ここまではデザイナの方に教えていただきました。
Photoshopでアクションをドロップレット化
ドロップレットとは
ドロップレットの作成方法(公式)
ドロップレットでは、ドロップレットアイコンに画像ファイルやフォルダーをドラッグ&ドロップすると 1 つのアクションを適用することができます。ドロップレットはデスクトップなどのディスク上に作成でき、実行するアクションの内容は自由に設定することができます。
使い方
詳細については(ry
先程作成したアクションをドロップレット化することで、画像をドラッグ&ドロップすると24x24
にリサイズしてくれるデスクトップアプリ(?)が出来上がります。
数十枚ぐらいの画像なら、フォルダごとドラッグ&ドロップするだけでリサイズできます。
ただ、大量の画像を一気に与えると、Macが死んでしまうので、もう少し工夫が必要です。
ドロップレットをスクリプトで実行
最後に、先程作成したドロップレットをスクリプトで実行します。
自分はShell力が足りなかったのでRubyで書きましたが、外部コマンドを実行できればなんでもいいです。
APP = 'resize24x24.app' # ドロップレットのパス
DIR = 'path/to/72x72' # 対象のパス
# ドロップレットに引数として渡すときは、絶対パスでないと動かないので注意
files = `find \`pwd\`/#{DIR} -type f | grep -v '.DS_Store'`.split(/\n/)
files.each do |file|
p file
`open #{APP} --args #{file}` # ドロップレットの実行
sleep 1 # 優しさ
end
コマンドラインからアプリケーションを開くために、open
を使用しました。
引数として与える画像ファイルのパスは、絶対パスでないとダメらしいので、そこだけ注意が必要です。
後は、ループ毎にPhotoshopへの気遣いを忘れなければ完璧です。
アクションを1回実行して、少し休憩するぐらいの時間を与えてあげましょう。
注意点
ちなみに、上記のスクリプトを実行すると、Mac上でフォーカスが取られ続けます。
このスクリプトは、1回のループで、「Terminal」→「Photoshop」というようにフォーカスが遷移します。
そのため、ループの度に(今回なら1秒に1回)フォーカスが移動し続けます。
めっちゃチカチカします。
帰り際に実行してから退社することをおすすめします。
もちろん、スリープの設定は切っておきましょう。
おわりに
初めて使いましたが、自動化しようと思えば結構できる部分もあって、意外とPhotoshop便利だなと思いました。
ちなみに、今回みたいな記事をチーム内ドキュメントにまとめてたら、ドロップレット機能の便利さに気づいたデザイナさんが覚醒して、Photoshopマスターになってました。
デザイナさん「画像ですか?いくらでも量産しますよ」