チップス

シェルスクリプトで一気に一枚の画像から複数の画像サイズの画像を作る



縦 300px X 横300px の test1.png という画像ファイルがあった時、シェルスクリプトを使えばコマンド一発で複数のサムネール画像を作る事ができます。

#!/bin/sh

atai=100
num=10

while [ $atai -gt 30 ]
do
atai=`expr $atai - 30`
num=`expr $num + 1`
/usr/bin/convert -geometry $atai test1.png  test$atai-$num.jpg
done
test70-11.jpg test40-12.jpg test10-13.jpg

googleで検索していたら「本当は速いImageMagick: サムネイル画像生成を10倍速くする方法Add Star」という記事があったので、画像の縮小をする ImageMagick の convertコマンドの引数を「-define jpeg:size=」にしてみました。

#!/bin/sh

srcxy=300
atai=50
num=20

while [ $srcxy -gt 50 ]
do
srcxy=`expr $srcxy - $atai`
num=`expr $num + 1`
/usr/bin/convert -define jpeg:size=${srcxy}x${srcxy} -resize ${srcxy}x${srcxy} test1.jpg test$srcxy-$num.jpg
done

test250-21.jpg

test100-24.jpg

test200-22.jpg

test150-23.jpg

シェルスクリプト

ふだん C や PHP などでプログラミングしていると、シェルスクリプトの文法にとまどうかもしれません。
わたしはシェルスクリプトとはなどを参考にさせていただいています。同じ事を何回も繰り返しているなら、「この処理はスクリプトでできないかな?」と考えてみると楽ができるようになるかもしれません。

参考URL

ImageMagickの基本的な使い方


   チップス