最近ドキュメントを作るときに携帯電話のスクリーンショットを大量に使い、都度縮尺したりしていて非常に面倒だったのでたまには頭をつかうことにした。
縮尺はimagemagickで実施しているので、後は何かをトリガーに自動で縮尺が走ればOK。そこでinotify。
mac版inotify-toolsがfswatch
を言うパッケージでhomebrewでインストール可能。
brew install fswatch
スクリーンショットを所定のディレクトリに入れると縮尺するshell scriptを書く。
#!/usr/bin/env bash
WATCH_DIR=/path/to/images
THUMB_DIR=/path/to/thumbs
trap "exit 0" 1 2 3 15
fswatch -0 $WATCH_DIR | \
while read -d "" file
do
test -d $file && continue
to_file="${THUMB_DIR}/$(basename $file)"
test -e $file && identify $file > /dev/null 2>&1 && convert -resize 30% $file $to_file
done
trap
はもう少しちゃんと何か
を書くべきかと思うが一応書いておいた。
その他、上書きチェックとかしてないので同名ファイルは常に上書きされたり、画像ファイルか否かの判定をidentify
コマンドの戻り値でやってたり、適当な感じで。
このスクリプト(仮にimgwatch
とする)を起動すれば、WATCH_DIR
に画像を入れるとTHUMB_DIR
に縮尺画像を吐き出してくれる。
./imgwatch
[amazonjs asin=”4873112540″ locale=”JP” title=”入門bash 第3版”]
コメント