シェルスクリプトにする

 写真風に加工するたびに連続でsipsコマンドを入力するのは面倒です。そこで、写真風に加工するためのシェルスクリプトにしてしまいましょう。

 まず、テキストエディタで以下のように入力します。bashのシェルスクリプトにしてありますが、zshでも構いません。zshの場合は先頭の一行目を#!/bin/zshにしてください。

#!/bin/bash
sips -Z 48 *.jpg
sips -p 48 48 --padColor 808080 *.jpg
sips -p 49 49 --padColor 000000 *.jpg
sips -p 63 63 --padColor ffffff *.jpg
sips -p 64 64 --padColor 000000 *.jpg

テキストエディタで入力したらとりあえずカレントディレクトリに./p1.shという名前で保存します。

このままでは実行できませんので以下のようにして実行権限を付与します。

chmod +x p1.sh

実行権限を付けたら以下のようにして実行してみましょう。

./p1.sh

無事に写真風に加工されればOKです。が、このままではシェルスクリプトにした意味があまりありません。そこで、次に写真風にするサイズなどをパラメータで指定できるようにしてみます。
スクリプトに指定するパラメーターは最初のパラメーター($1)に内側のサイズ、2番目のパラメーター($2)に余白を含めたサイズを指定することにします。
それぞれ$1,$2に値が入ります。先程作成したスクリプトの48の値の部分を$1に、64の値の部分を$2に変更します。先程のスクリプトの49は48より1つ多いので$1に1を加算するようにします。bash,zshで加算するには$(($1+1))のように指定します。 同様に63は64より1少ないので減算となるので$(($2-1))のように指定します。
これらの修正をしたシェルスクリプトは以下のようになります。このシェルスクリプトをp2.shという名前で作成し保存します。

#!/bin/bash
sips -Z $1 *.jpg
sips -p $1 $1 --padColor 808080 *.jpg
sips -p $(($1+1)) $(($1+1)) --padColor 000000 *.jpg
sips -p $(($2-1)) $(($2-1)) --padColor ffffff *.jpg
sips -p $2 $2 --padColor 000000 *.jpg

以下のように実行権限を付与します。

chmod +x p2.sh

これで完成です。が、正常に動作するかどうかを以下のように入力して確認してみましょう。これは、p1.shを実行した場合と同じ結果になります。

./p2.sh 48 64

確認すると期待通りの結果になっています。それでは次にサイズを変えて実行してみましょう。

./p2.sh 560 600
./p2.sh 200 300

動作的には問題なさそうです。ただ、パラメータを指定し忘れた場合などは考慮していません。そのような場合にどう対処したらよいかは前回の連載を参考にして改良してみてください。

次回はsipsで画像形式の変換を行ってみます。

著者 仲村次郎
いろいろな事に手を出してみたものの結局身につかず、とりあえず目的の事ができればいいんじゃないかみたいな感じで生きております。