macOSに標準でインストールされているAutomatorは本当に便利です。作業の自動化に使わない手はありません。何かと使い道があるのですが、今日は複数の画像ファイルを一括変換したり、形式を揃えて書き出ししたりする方法を扱ってみたいと思います。

ブログやサイト制作で複数の画像を掲載したい時に、画質を考慮しつつもファイルサイズはなるべく抑えたいと思うものです。しかし、いちいちPhotshopで開いて画像を加工するのは面倒だよなって時がありませんか?そんな時に是非活用してみてください!

スポンサーリンク




目次

  1. jpgファイルの圧縮率を統一して上書き保存する
  2. 他形式から決められた圧縮率のjpg画像を書き出す
  3. まとめ

1.jpgファイルの圧縮率を統一して上書き保存する

まずは、低めの圧縮率(70以上)で書き出しされた複数のjpg画像のファイルサイズを抑えるため、実用上ほぼほぼ最低レベルの「60」で再圧縮して一括書き出しできるアプリケーション・ワークフローの作り方です。

Google Search Consoleの拡張項目内に「速度」という項目が追加されており、SEO的視点からサイトの表示速度が以前よりも意識されているようになっています。

このサイトでも沢山の画面キャプチャが使用されているのですが、以前はPhotoshopで書き出した圧縮率「80」の画像を使用していました。しかし、ある時、もっと圧縮率を下げてページ毎のデータ量を減量したいなと考えたのですが、複数ファイルをなんとかして一括で圧縮率「60」のjpg画像に再圧縮できないかと考え、このAutomatorの活用法にたどり着きました。

複数のjpg画像を一括で圧縮率「60」に統一したいという、似たようなニーズをお持ちの方は大変便利ですので、是非試してください!

作り方

まずはAutomatorを起動して「ファイル」→「新規」を選択します。

このようなウィンドウが開いたら「アプリケーション」を選択した状態で「選択」ボタンをクリックします。

左サイドの「ユーティリティ」→「シェルスクリプトを実行」を選択して、Bashコマンドを書きます。記述するBashコマンドは下記の通りです。

for f in "$@"
do
	sips "$f" --out "$f" -s format jpeg -s formatOptions 60
done

簡単に意味を解説すると「$f」とは変数のことで、ドラッグ&ドロップされたjpg画像ファイル名が引数として渡され「$f」に格納されます。「sips」コマンドを使って、jpg画像が書き出しされますが、オプションの「formatOptions」が指定されており、ここでは「60」と設定されています。

この「60」という数値は圧縮率を意味します。「60」以外にも設定できますが、「60」以下はファイルサイズは更に小さくなるものの、著しく画質が劣化しますので実用上の最低値は「60」程度ではないかと思います。数値を色々変えて自分にとっての最適値を見つけましょう。

ちなみに、圧縮率「80」から「60」に落とすことで、概ね40%程度ファイルサイズを減少させることができます。

一つ注意点がありますが、画面右上の「入力の引渡し方法」は必ず「引数として」を選択しておいてください。

このような状態となっているはずです。これで完成です。デスクトップなどにファイル名を指定して保存しましょう。

使い方

圧縮率が高めの複数のjpg画像を用意してください。それらの画像を複数選択し作成したAutomatorのアプリケーション・ワークフローのアイコンにドラッグ&ドロップします。すると僅か数秒で再圧縮が完了します。

ファイル数が20〜30程度なら何の問題もなく、あっという間に作業が完了します!それ以上のファイルを一括で変換したい時は、念のため、複数回に分けて作業した方が無難かもしれません。それでも、ファイルを一つひとつ開いて作業することを考えると、圧倒的に作業が早く終わりますよ。これは超便利!

完成形

念のため完成形を用意しました。必要でしたらダウンロードしてお使いください。

jpg-to-jpg60.zip

2.他形式から決められた圧縮率のjpg画像を書き出す

「…なんだ、jpg画像からしかjpg圧縮できないんだ」と思われたそこのあなた!他の画像形式からも一括でjpg画像に変換するやり方もありますよ。この項ではそのやり方を扱いたいと思います。

「sips」コマンドは「jpg(jpeg)」他にも下記のような形式の画像を開いて加工できます。

  1. tiff
  2. png
  3. gif
  4. jp2(jpeg2000)
  5. pict
  6. bmp
  7. qtif(QuickTime Image)
  8. psd(Photoshop)

作り方

今度は上記のような他形式の画像を一括でjpg画像(圧縮率60)で書き出す方法です。途中まではやり方は一緒です。Bashコマンドだけ書き換えてください。

for f in "$@"
do
	n="${f%.*}"
	sips "$f" --out "$n.jpg" -s format jpeg -s formatOptions 60
	mv "$f" ~/.trash
done

前回はjpg→jpgだったので、ファイル名はそのまま流用できたのですが、今度は拡張子を変えなければなりません。そこで引数から渡されたファイル名から拡張子を削除して、新たに拡張子を付与しなければならないので、上記のような記述となります。また古い画像はゴミ箱に移動させます。

ちなみに一括でjpgではなく、pngにしたい場合は「sips」コマンドの「”$n.jpg”」という箇所を「”$n.png”」に。また「format jpeg」という箇所を「format png」にすれば、png書き出しできるように変更できます。

このようになっていれば、完成です。

使い方

使い方は一緒です。前述の他形式の画像ファイルを複数用意してください。あとはAutomatorのアプリケーション・ワークフローのアイコンにドラッグ&ドロップするだけ。あっという間に複数のファイルが圧縮率60のjpg画像に変換されます!

完成形

念のため完成形を用意しました。必要でしたらダウンロードしてお使いください。

other-to-jpg60.zip

3.まとめ

以前にもAutomatorの活用法をご紹介しましたが、Automatorって作業を自動化でき、かつ応用範囲も広いため、Mac使いなら是非とも活用したい純正アプリケーションだと思います。いずれ画像の解像度変更なども扱ってみたいと思います。お楽しみに!