macの「sipsコマンド」1発で画像をリサイズ(拡大・縮小)する方法

macコマンド

macのコマンドで大量の画像を一気にリサイズしたい!と思った人は、是非この記事を参考にしていただき sipsコマンドを試してみてください。macのコマンドには sips(シップス)Scriptable Image Processing System というコマンドがあり、ターミナルでこのコマンドを実行するだけで簡単に画像をリサイズ(拡大・縮小)することができます。超簡単で超便利です!このやり方を覚えてしまえば、photoshopとかの画像加工ソフトを使わなくても画像のリサイズ(拡大・縮小)ができちゃいます!
このsipsコマンドの拡大に関しての注意点として、ほんのちょっと調整するレベルで画像を大きく(拡大)する程度であれば問題ないのですが、極端に拡大(例:600px → 2400pxに拡大)することはお勧めしません、なぜなら画像が荒くなるし、拡大した分の容量もそれなりに増えてしまうからです。しかしながら、その逆で極端に縮小(例:600px → 80pxに縮小)するサムネイル画像などを作る場合はすごーく向いています!sipsコマンドは特に縮小する場合は超便利なのです。
制作現場でありがちな例ですが、誰かの依頼で「画像500枚を1000px(縮小か拡大)で全て統一して下さい!」と頼まれた時に、まずは photoshopを起動して、画像を読み込んで、書き出しを設定して、、、なんてことをしていたら1〜2時間くらい?時間がかかってしまいますよね。さらに「追加で、あと2000枚よろしくねっ!」とか言われたら 発狂 しちゃいます。しかし!ワタシが実際に行った sipsコマンドの検証結果では「3,600個の画像を約10秒」で書き出しできました!
そのsipsコマンドは sips -Z 1000 *.jpg ← これだけです。
この記事を読んでいただければ、画像の縮小・拡大のために、わざわざphotoshopを起動することが面倒になると思います。そして、出来る限りコマンド操作だけで作業を進められるように記事を書いたので、何度も読み直していただけたら、きっとコマンド操作のスキルも上がると思います!少しでもあなたのお役に立てれば嬉しいです。

ターミナルをキーボードだけで開く

まずは、ターミナルを起動しましょう

ターミナルの起動方法
macの画面上で 「Command + Space」を押すと 「Spotlight検索」画面が現れるので「ter」の3文字を入力すると勝手に「terminal.app -ターミナル.app」が候補として出現するので、そのままエンター(リターン)を押しましょう。
これで、ターミナルが起動します。※コマンドを打ち込む時は「ひらがな」では、うまくいかないので必ず「英数」で入力しましょう。

このやり方はとても便利で超速くターミナルを起動できるし、タタタ〜ンッってキーボードだけでターミナルを起動すると、なんかカッコイイので、何度も練習して体(指)で覚えちゃいましょう!
実行例 ↓

ringo:~ ringo$ というのは、「ホスト名:~ ユーザー名」という意味です。それぞれのPCで設定してある「ホスト名とユーザー名」が表示されます。

sipsのバージョンを確認する

sipsのバージョンの調べ方

ターミナルを起動したら、ターミナル画面に下記を入力します。

#sipsのバージョンを表示する
sips -v

実行結果が「sips-294」や「sips-295」などであれば sips が使える環境です。
実行の例 ↓

リサイズしたいフォルダをコマンドで生成する

フォルダもコマンドで生成してみよう

それでは、わかりやすく作業を進めるため、デスクトップで作業をします。
まず、ターミナルで操作してデスクトップで作業をするコマンドを入力します。

#デスクトップに移動する
cd desktop
#「resize」というフォルダを生成する
mkdir resize

実行例 ↓

これで、デスクトップに「resize」というフォルダが生成されました。
cd コマンドは操作するディレクトリを移動するコマンド。
mkdir コマンドは新規でフォルダを生成するコマンド。
ちなみに、フォルダを削除するコマンドは rmdir です。これも一緒に覚えておきましょう。

下記のサンプルはデスクトップに「test」フォルダを生成してから、rmdir 「test」フォルダを削除しています。※この作業は練習なので無視してもOKです
実行例 ↓ (test フォルダを生成して削除しています)

続いて、リサイズ(縮小)したい画像を「resize」フォルダに入れましょう。
ワタシの場合は、横幅600pxの画像を25枚「resize」フォルダに入れました。
こんな感じ ↓ 「resize」フォルダの中身

フォルダのバックアップはコマンドでコピーする

念のためフォルダのバックアップをとる

まず、「resize」フォルダをコピーします。なぜかというと、sipsコマンドを実行したら指定されたフォルダ内の画像は上書き保存されてしまうので、念のためフォルダのバックアップを取っておく必要があります。
もしも、バックアップ不要で、フォルダ内でのファイル上書きリサイズで問題ない場合はこの箇所は、飛ばし読みして下さい。

#「resize」フォルダ中身含めコピーして「resize_bk」フォルダを生成する
cp -r resize resize_bk

これで「resize」フォルダを元にしたコピーが「resize_bk」というフォルダ名で新たに生成されました。
cp -r というのは、該当のフォルダの中身もコピーするというコマンドとオプションです。
実行例 ↓

リサイズを実行したいフォルダに移動する

「resize」フォルダ内に cd コマンドで移動します。

#「resize」フォルダに移動する
cd resize

現在の作業ディレクトリを表示する pwd コマンドでちゃんと「resize」フォルダの中に移動できたのか確認をしましょう。

#現在の作業ディレクトリを表示する
pwd

下記のように「/Users/ringo/desktop/resize」と、なっていれば、問題ないので次に進みましょう。※ ringo はPCのユーザー名です。
実行例 ↓

sipsコマンドを実行する

sipsコマンドを実行する方法はとても簡単です

それでは、下記のコマンドを打ち込んだら(コピペでもOK)エンターキーを押してください。
※画像ファイルの拡張子 .jpg 部分は適宜変更してください(例:.png や.gif など)

# .jpgの全てを320pxにリサイズ書き出しする
sips -Z 320 *.jpg

コマンド操作1発でダダーッて、1秒もかからないでリサイズ(縮小)された画像が書き出しされたと思います。※今回のサンプルで画像25枚程度なら、書き出しするのに1秒かかりません
実行例 ↓

sipsコマンドを実行後に「resize」と「resize_bk」の容量の大きさを比べてみましょう。
「resize」: 643KB
「resize_bk」: 1.6MB
という結果になりました。容量は半分以下のサイズになりました!まあ、リサイズ(縮小)なので容量が小さくなるのは当たり前ですね。

ちなみに、ワタシの環境で1000pxの画像を24pxに縮小して、一気にどれだけ書き出しができるのか試してみました。結果は3,600個の画像なら約10秒で全ての書き出しが完了しました!3,700個を実行すると Argument list too long(引数リストが長い)というエラーが出て書き出しは無理でした。。。
というわけで、3,600個までの画像ならsipsコマンド操作1発でダダーッて、リサイズができます。お試しあれ〜

リサイズの書き出しフォルダを指定する

バックアップフォルダを作るのが面倒な場合

あらかじめフォルダを用意しておけば、そのフォルダの中にリサイズの書き出しができます。
「fix」フォルダを事前に用意して、その中にリサイズした画像を格納したいと思います。
これまで操作してきたコマンドを思い出して今一度コマンド操作してみましょう。

①コマンドの作業場所がデスクトップであることを確認する
②デスクトップに「fix」フォルダを生成する
③コピー元である「resize」フォルダに移動する
④sipsコマンドを実行する
という手順で下記のコマンドを確認しながら進めてみてください。

#①現在の場所を確認する
pwd

#②「fix」フォルダを生成する
mkdir fix

#③「resize」フォルダに移動する
cd resize

#④sipsコマンドを実行。書き出し先はデスクトップの「fix」フォルダを指定
sips -Z 320 *jpg -o /Users/ringo/Desktop/fix

実行例 ↓

いかがでしょうか。「fix」フォルダの中に320pxにリサイズされた画像が格納できたと思います。
このように、わざわざ、バックアップフォルダを作らなくても、任意のフォルダ指定をすればリサイズ後の画像を格納することができます。指定フォルダが存在しない場合はエラーになり書き出しはできないので注意してください。

不要になったフォルダをコマンドで削除する

rm コマンドを実行する

最後に、不要になったフォルダをまるっと削除するコマンドも便利なので覚えておきましょう。
「resize」フォルダ内25枚の画像をフォルダごと1発で削除するコマンドです。

#「resize」フォルダを削除する
rm -r resize

実行例 ↓

いかがでしょうか。コマンド1発で「resize」フォルダを削除できたと思います。このように、コマンドでファイルを操作できるようになると、作業効率が確実に良くなります!pwdコマンドは作業場所を確認するために毎回、使う癖をつけておくと良いです!
とにかく、いろいろなコマンド何度も繰り返し試してみてくださ〜い。

まとめ

  • ターミナルの起動はキーボードでしましょう
  • sipsのバージョンの調べ方は sips -v
  • フォルダの作成はコマンド1発でできます
  • 念のためフォルダのバックアップは取っておいた方が良いです
  • フォルダをあらかじめ用意しておけば、そのフォルダの中にリサイズの書き出しが可能
  • 不要になったフォルダはコマンド1発で削除しましょう
  • sipsコマンド1発で3,600個くらいの画像リサイズが可能である