WebDesigner's Memorandumウェブデザイナーの備忘録

Alfredで現在開いているフォルダ内の画像をImageOptimで圧縮するWorkflowの作り方

Alfredで現在開いているフォルダ内の画像をImageOptimで圧縮するWorkflowの作り方

下記2つの記事を書いて思いついた合わせ技になります。

作りたいWorkflow

現在ImageOptimで画像の圧縮をしたいときの自分のフローは下記の通りです。

  1. 画像フォルダを開いて、画像を選択
  2. AlfredでImageOptimを起動
  3. ImageOptimに画像をドラッグして圧縮

もし、Workflowができると下記のようになります。

  1. 画像フォルダを開く
  2. AlfredからWorkflowを実行して圧縮

Finderで開いているフォルダ内の画像を圧縮するようにすれば、画像を選択する必要もないですし、Alfredからの実行後、すぐ圧縮されるのはストレスフリーですよね。

Workflowの作成

まずはAlfredの環境設定の[Workflows]のサイドバー下の「+」ボタンを押し、「Blank Workflow」をクリックして必要情報を入力します。

今回の場合はImageOptimを実行するWorkflowなので、名前は「Execute ImageOptim」としておきます。

Workflowの作成

キーワード部分の設定

黒い背景部分を右クリックして、[Inputs]→[Keyword]を選択します。

キーワードに関してはImageOptimの略で「io」にして、引数はなしにしたいので「No Argument」を選択します。

入力キーワードの設定

あとはタイトルやサブタイトルなどの情報を入力して「Save」をクリックします。

Finderからのパス取得部分の設定

Keywordの右横にあるポッチをクリックして、[Actions]→[Run NSAppleScript]を選択します。

自分はPath FinderとFinderを併用しているので、下記のコードをコピペします。

on alfred_script(q)
  tell application "System Events"
    set appName to name of the first process whose frontmost is true
  end tell
  if appName is "Finder" then
    tell application "Finder"
      set pathList to POSIX path of (folder of the front window as alias)
      return pathList
    end tell
  else
    tell application "Path Finder"
      set pathList to POSIX path of the target of the front finder window
      return pathList
    end tell
  end if
end alfred_script

Finderのパスを取得

詳細な内容は過去に記事にしているので、Finderのみでいい方などはこちらを参考にしてください。

ImageOptim起動部分の設定

Run NSAppleScriptの右横にあるポッチをクリックして、[Actions]→[Terminal Command]を選択して下記コマンドを設定します。

open -a ImageOptim.app {query}/*

もしPNG画像に限定したい場合は、最後を*.pngにすればOKです。

ImageOptimを実行するコマンドの設定

ちなみに、フォルダ名にスペースが入っている場合はうまく動作してくれないので、下の「Escaping:」にある「Spaces」をチェックしてエスケープしておくとより安全だと思います。

これで完成なので、ちゃんと動作するか試してみましょう。

まとめ

ImageOptim以外にも、いまFinderで選択しているファイルを特定アプリで開くというのは色々できそうですね。

ものによっては少し工夫が必要かもしれませんが、基本的には似たようなWorkflowで作れそうです。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね