画像をサイズでフィルタリングする

●画像の大きさが長辺1000px以下の画像をsmall ディレクトリに移動する。

requires ImageMagick

単一画像の場合: filter_image.sh <画像ファイル>
一括処理の場合: find <画像ディレクトリ> -type d -name small -prune -o -type f -name “*.jpg” -exec filter_image.sh {} \;

#!/bin/sh

if [ -z $1 ] ; then
  exit 1
fi

wh=`identify $1 | sed -r 's/^.* ([0-9]+)x([0-9]+) .*$/\1 \2/'`
width=`echo $wh | sed -r 's/^([0-9]+) ([0-9]+)$/\1/'`
height=`echo $wh | sed -r 's/^([0-9]+) ([0-9]+)$/\2/'`
smalldir=`dirname $1`/small

if [ $width -gt $height ] ; then
  comp=$width
else
  comp=$height
fi

if [ $comp -lt 1000 ] ; then
 if [ ! -d $smalldir ] ; then
    mkdir $smalldir
 fi
 mv $1 $smalldir/
fi

exit 0