Python: 画像ファイルサイズを変更。さらにAutomatorでクイックアクション化 。

前回に続いてPython&Automatorネタ。
今回は画像ファイルのリサイズ。

1.なぜ作ったか

  • ネットに画像をアップする際、画像サイズを小さくリサイズすることがものすごく多い。
  • Macの純正アプリAutomatorを使えば、画像ファイルのリサイズを行うことができる、フォルダアクション、ドラッグ&ドロップアプリ、クイックアクションが簡単に作れる。
  • ただしかし、元々小さいサイズの画像が強制的に無駄に引き伸ばされてダルダルになってしまう。
  • 大きいサイズなら小さくリサイズ、小さいサイズならそのままに、といった細やかな処理を行いたい。

2. 環境

  • Mac: Mac mini 2018
  • MacOS: Catalina 10.15.2
  • pyenv: 1.2.16
  • pipenv: 2018.11.26
  •  Python: 3.8.1

 

3. ダウンロード&仮想環境構築

GitHubからクローンするのが簡単。

 

4. Pythonスクリプト

次の機能を実装しました。

  • 縦または横の画素数を指定して画像をリサイズ
  • 大きいサイズの画像ファイルを指定サイズにリサイズ
  • 小さいサイズの画像ファイルはそのまま。オプションで強制的に指定サイズに拡大

 

5. Pythonでの使い方

仮想環境をアクティベートします。

 

ヘルプを表示

 

縦または横サイズ指定でファイルをリサイズ

 

小さいサイズのファイルを強制的にリサイズする

 

6. コマンドっぽくする

python.py無し、単にimage-resizeでスクリプトを実行できるように細工して、コマンドっぽさを前面に出すための工夫です。

第1に、スクリプト自体に+xのパーミッションを与えます。

第2に、パスが通ったディレクトリ(私の環境では~/bin)を用意します。

シェルに応じて、~/.zshrc(zsh)や~/.bashrc(bash)に、次のように書いておけば良いでしょう。

usernameは適宜置き換えること。

 

第3に、次のシェルスクリプトを~/binに作成します。
~/path-to-projectは、プロジェクトをgit cloneしたディレクトリです。適宜置き換えること。

そのシェルスクリプトにパーミッション+xを与えます。

 

以上の設定により、ワーキングディレクトリがどこであろうが、例えば次のコマンドのように実行できるはずです。

 

7. Automator化する

Automatorを起動し、「ファイル」>「新規」より、書類を作成します。
さらに、次の手順で設定を行います。

クイックアクション>選択

「シェルスクリプトを実行」をドラッグ&ドロップ

スクリプトを記述

 

内容は次のとおり。横幅を1200に変更する設定です。

 

最後に、例えば「画像サイズを変更(w1200)」という名称でセーブします。

 

ジャジャーン!
クイックアクションから画像サイズを変更できるようになりました。

クイックアクションから画像サイズを変更できます。

 

Leave a Comment

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください