1 файл:
convert original.jpg -thumbnail 480x -resize 'x480<' -resize 50% -gravity center -crop 160x160+0+0 square_thumb.jpg
Для текущего каталога:
mkdir ./preview 2>/dev/null
for fn in `ls ./*.jpg`;do
f=`basename $fn`
convert ./$f -thumbnail 480x -resize 'x480<' -resize 50% -gravity center -crop 160x160+0+0 ./preview/$f
done
Как подобрать размеры.
Например нужен размер 160px
так как размеры фото обычно в пропорции 2:3 или 4:5, значит кроп делать нужно из картинки большая сторона которой равна 160*(3/2)=240.
то есть возможен вариант
convert original.jpg -thumbnail 240x -resize 'x240<' -gravity center -crop 160x160+0+0 square_thumb.jpg
но с
-resize 50%
превьюшка получается более резкой (почему то). Поэтому берем 480.
Итого: 160*(3/2)*2=480.