#!/bin/sh set -e sizes=(640 320 160 80) presizes=(120 60 30) rm samples.csv echo "Getting file dimensions..." for f in sample/*unsplash.jpg; do gm identify -format %f,%w,%h $f >> samples.csv done for size in ${presizes[*]}; do for f in sample/*unsplash.jpg; do echo "Compressing thumbnail $f at $size" if [ -f "${f%.jpg}_pre$size.jpg" ]; then continue fi gm convert $f -resize x$size -compress jpeg -quality 40 ${f%.jpg}_pre$size.jpg gm convert $f -resize x$size -compress webp -quality 35 ${f%.jpg}_pre$size.webp done done for size in ${sizes[*]}; do for f in sample/*unsplash.jpg; do echo "Compressing $f at $size" if [ -f "${f%.jpg}_$size.jpg" ]; then continue fi gm convert $f -resize x$size -compress jpeg -quality 75 ${f%.jpg}_$size.jpg gm convert $f -resize x$size -compress webp -quality 70 ${f%.jpg}_$size.webp done done