Macには画像をリサイズできるsipsコマンドがあります。
今までは大きいサイズをPhotoShopやPrint.Netなどでリサイズしていたのですが、これを使うと簡単に画像をリサイズできます。
オプション(ほんの一部)
- -z height(px) width(px): 画像を縦横指定のサイズにリサイズ
例
$ sips -z 360 480 image.jpg
- -Z : 画像の縦横のうち、大きい方のサイズに合わせて縦横比率はそのままで指定サイズにリサイズ
例
$ sips -Z 800 image.jpg
- --out 指定ディレクトリにリサイズしたファイルを出力
例
$ sips -Z 800 image.jpg --out resized/
マニュアル
使ってみた
これらを使って、ディレクトリ内にある.jpgファイルを検索し、複数のサイズにリサイズするスクリプトを作ってみました。
ファイル名はresize_images.shにしました。
ディレクトリのチェックはしていないです。
スクリプトファイルのあるディレクトリ内に複数のjpgファイルがあり、サブディレクトリとしてresized1〜4、originがあるのが前提です。
#!/bin/bash
find . -name "*.jpg" -maxdepth 1 | while read f; do
sips -Z 320 $f --out resized1/$f
sips -Z 800 $f --out resized2/$f
sips -z 160 160 $f --out resized3/$f
sips -z 80 80 $f --out resized4/$f
mv $f original/
done
./resize_images.sh で実行します。
処理内容は、
find でファイル名が*.jpgにマッチするファイルを検索。
-maxdepth 1 で深度をカレントディレクトリのみに指定。
read で画像ファイルを順に読み込みリサイズ処理をループ。
オリジナルの画像ファイルはoriginal/ディレクトリに移動。
結果
や
や
みたいな感じのファイルが出力されます。