20
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

mixiグループAdvent Calendar 2017

Day 13

Photoshopをエンジニアらしく使う方法

Last updated at Posted at 2017-12-12

はじめに

mixiグループ Advent Calendar 2017 の13日目の記事です。
家族アルバム みてね」というサービスの開発を行っている、@gembafです。
仕事として、Photoshopを使う機会があったので、記事にしてみました。
ちなみに、今回初めて使いました。

みてね とは

子どもの成長をいつでも、どこでも、いつまでも
というテーマの元、スマホで撮った子どもの写真や動画を、簡単に共有・整理できることにより、家族で楽しく会話したり、成長をふりかえることができるアプリです。

やりたいこと

大量の画像に対して、Photoshopで色々加工して、いい感じの画像を量産したい (意訳)

問題点

  • 1つ1つ手でポチポチやっていくの辛すぎ問題
  • デザイナさんのリソースを専有できない
    • デザイナさんにはもっと高尚な作業をしてほしい

ということで、こんな仕事はコンピュータにやってもらいました

本題

流れとしては以下の通りです。

  1. Photoshopでアクションを定義
  2. Photoshopでアクションをドロップレット化
  3. ドロップレットをスクリプトで実行

今回は、例として72x72の画像ファイルを、24x24にリサイズしたいと思います。

Photoshopでアクションを定義

アクションとは

アクションの作成および再生方法(公式)

アクションとは、Photoshop での一連の作業を記憶しておいて、必要な時に再利用できるようにする機能です。いくつもの作業をその都度メニューから選択して実行する手順を、アクション機能を使用することにより、2、3 のステップで自動的に実行することができます。

使い方

詳細については上記の公式ドキュメントを参照してください。

基本的な流れは以下のとおりです。

  1. 画像開く
  2. アクションの録画開始
  3. リサイズ
  4. 別ファイルとして保存
  5. 画像閉じる(超重要!!!)
  6. アクションの録画終了

3662d1f5-6216-4e2f-bd2e-a24c0dbaaf0d-1920x1512r.png

これでアクションを定義できました。

ファイルを開いてから、作成したアクションを再生すると、3〜5が実行されます。
ちなみに、5をやっておくと、リサイズが終わった画像は自動でタブが閉じられるので便利です。

ここまではデザイナの方に教えていただきました。

Photoshopでアクションをドロップレット化

ドロップレットとは

ドロップレットの作成方法(公式)

ドロップレットでは、ドロップレットアイコンに画像ファイルやフォルダーをドラッグ&ドロップすると 1 つのアクションを適用することができます。ドロップレットはデスクトップなどのディスク上に作成でき、実行するアクションの内容は自由に設定することができます。

使い方

詳細については(ry

先程作成したアクションをドロップレット化することで、画像をドラッグ&ドロップすると24x24にリサイズしてくれるデスクトップアプリ(?)が出来上がります。

スクリーンショット 2017-12-11 18.49.43.png

数十枚ぐらいの画像なら、フォルダごとドラッグ&ドロップするだけでリサイズできます。
ただ、大量の画像を一気に与えると、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回)フォーカスが移動し続けます。

12月-12-2017 16-58-41.gif

めっちゃチカチカします。

帰り際に実行してから退社することをおすすめします。
もちろん、スリープの設定は切っておきましょう。

おわりに

初めて使いましたが、自動化しようと思えば結構できる部分もあって、意外とPhotoshop便利だなと思いました。

ちなみに、今回みたいな記事をチーム内ドキュメントにまとめてたら、ドロップレット機能の便利さに気づいたデザイナさんが覚醒して、Photoshopマスターになってました。

デザイナさん「画像ですか?いくらでも量産しますよ」

20
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?