PC

念願叶って複数の画像ファイルのサイズをフォルダ右クリックから縮小!(Automator使用)

Sips Z 600 workflow 0

@rabirgoです。

以前からこれやりたいと思ってたことが出来たのでメモ。

私は、一旦 iPhoto→ローカルフォルダ に画像を保存してから、サイズを変えてblogに使ってます。オリジナルのファイルはサイズが大きくてオーバースペックなので。
(ちなみに、iPhoto のファイルは iPhone やデジカメから自動で取り込んで iPhoto Library のどこかに保存されてると思います)

この作業が面倒で、簡単にできないものかと思ってました。一応 一括変換するワンライナー(sipsを使用)を作ってはいたものの、今度はフォルダからターミナルを起動して…という手順が面倒。

なので、出来れば iPhoto からローカルフォルダに保存した時に自動で縮小か、1アクションぐらいで出来ないかなぁと。

automatorやフォルダアクションを使えば出来そうだなと思ってたんですが、使ったことがなかったんで調べるのもまた面倒、と放置してました。言うほど困ってなかったし。

今回、重い腰を上げて取り組んでみたので共有します。

食わず嫌いだったautomator

ワークフロー形式のインタフェースが面倒そうというのが先に来てたんだけど、そうでもなかった。(やたら選択肢が多くて、ちょこちょこと変えなきゃいけないんだろうなーとか思ってた)

iCloud上に保存とか出来るようで、なかなか便利そう。

今回、ゴールを以下の操作実現とします。

目指す手順

  1. ローカルフォルダを作る(画像上、/Users/rabirgo/Documents/blog_img/tmp/test_picturesというフォルダ名です)
  2. iPhotoからローカルフォルダにコピー
  3. test_picturesを右クリックし、sips_Z_600 を選択すると画像ファイルが縮小される(オリジナルファイルもbak配下に保存)

automatorの起動

アプリケーション配下にあります。LaunchPadであれば冒頭の画像のように「その他」の下から。spotlightやAlfredであれば”automator”を入力。

Applications

起動すると、なにをしたいのか聞いてくるので「サービス」を選択。

Automater

フォルダの場所を取得

選択しているフォルダの場所(パス)を取得するアクションを追加します。

Sips Z 600 workflow 1
  1. 検索窓に「選択」と入力
  2. 「選択された Finder 項目を取得」を選択してドラッグ&ドロップ(もしくはダブルクリック)
  3. 右上の”サービス”は、次の選択項目を受け取る”:「フォルダ」、検索対象:Finder.appを選択

フォルダの場所を引数としたシェルスクリプトを追加

$@に、選択されたフォルダが渡されてくるようです。(二つ選択までは動作確認済み。但し、フォルダ名にスペースがあると動作せず。”$f”としてみたけどダメ。特に困らないので放置)

Sips Z 600 workflow 2
  1. 検索窓に「シェル」と入力
  2. 「シェルスクリプトを実行」を選択してドラッグ&ドロップ(もしくはダブルクリック)
  3. 実行するシェルスクリプトを入力。テキストは以下。

[bash]
for f in “$@”
do
cd $f
mkdir -p bak && ls *.[jJ][pP][gG] *.[pP][nN][gG] | while read file ; do echo “mv ${file} bak && sips -Z 600 bak/${file} –out ${file}” | bash -x ; done
done
[/bash]

bak というフォルダを作成し、拡張子 jpg, png のファイルに対してオリジナルのファイルを保存後、一辺 600px に変換します。

参考:sips(1) Mac OS X Manual Page

動作確認

Finderで対象のフォルダを選択します。

Sips Z 600 workflow 3

automatorで「実行」を押下。ワーニングが出ますが無視して「OK」押下。

Sips Z 600 workflow 4 Warning

「bak」というフォルダが作成され、各ファイルはサイズが縮小されました。

Sips Z 600 workflow 5

「bak」の中にはオリジナルのファイルがあります。大きさを変更することで、4.4MB(約4,400KB)→36KBに圧縮。

Sips Z 600 workflow 6

作成したworkflowを保存してコンテキストメニュー(右クリック)で使えるようにする

作成したworkflowを保存します。Cmd+sか、ファイル→保存。名前は、右クリック時に表示させたい名前にします。「~/Library/Services/」に保存されます。

Save

システム環境設定を開いて、キーボードを選択。

System preference

ショートカットタブを開いて、左側の「サービス」を選択。

ファイルとフォルダのグループ内に、先ほど登録した名称でサービスが登録されていれば成功です。

Keyboard service

こんな感じでコンテキストメニューに表示されます。

Context menu

iCloud上に保存(あまり便利ではなさそうなので非推奨)

この手順でいいか自信が無いけど一応。

作成したworkflowは「~/Library/Services/」に保存されています。このファイルを iCloud 上に保存。

なお、システム環境設定で [iCloud – 書類とデータ] にチェックを入れておく必要があります。念のため「オプション」ボタンを押下して「Automator」にチェックが入ってることを確認。

    1. 先ほどworkflowを作成したAutomatorは開いたままにしておく
    2. AutomatorでCmd+Oを押下、タブのiCloudを選択。後ほど、ここにworkflowをドラッグするので開いたままにしておく
Automator iCloud
    1. Finderで、Cmd+Shift+Gを押下すると「フォルダの場所を入力:」ダイアログが出現するので「~/Library/Services/」を入力して「移動」
Finder cd
    1. workflowが見つかる
ICloud drag before
    1. iCloudのダイアログにドラッグ。すると…コピーされると思いきや「移動」してしまう。で、そのまま「サービス」として使えればいいんだけど使えないんだよね。。
ICloud drag after
  1. ということで、仕方ないので iCloud のダイアログを閉じて、もう一度 workflow を保存。「~/Library/Services/」に保存されます。

で、iCloud で共有した PC ではダウンロードの必要があるんだろうな。Dropbox + シンボリックリンク 使った方が早そう。

いじょ。

ABOUT ME
rabirgo
うさぎ年(rabbit)おとめ座(virgo)生まれの rabirgo です。 2019年よりフリーランスとして活動しています。 よかったら Twitter フォローお願いします! Follow @rabirgo

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です